If you feel anal about concurrency, use intrinsic locks, or non-intrinsic locks, but you need to be more careful with those.
Or solve the issue entirely and use a separate ArrayList for each world.
Glowstone is the only MC implementation that uses a thread per world model, and it is currently unknown whether there will ever be sponge support on it.