I wonder if putting it in a separate thread is really necessary. I mean, the creation of a form and displaying an image only takes a tiny fraction of a second, so there shouldn't be any need to make another thread. When you introduce another thread, you may end up making things slower since you need to context-switch, whereas if you do it synchronously, it just runs right through.
BlueMonk was suggesting that you create a new map because the line you specified as being slow is where it loads the first map of the game, which is why it's so slow. If you do put in a simple startup map, then your game will appear to load a lot faster, and shouldn't need a splash screen. This map can either be a splashscreen, if you really want one, or just the text "loading", or a level select, or a main menu (new game/load game, etc), or even just an image of what your real first map looks like, so the map appears to load right away, which will then be replaced by your real map when it loads.
Most games don't use splash screens any way; it's mostly an application thing. So be sure it's really the best solution before you... decide to leave it in, since it's already there, I guess.