TFTLaunch is a program that will allow you to run multiple instances of TFT at the same time. You can run this in windowed mode to allow easier switching between the instances of TFT. To do this, specify the parameter -window in a shortcut to this program.
One limitation of TFTLaunch is that you are limited when it comes to getting Battle.Net: you only have 1 CD-Key, and it will not let you connect while your CD-Key is in use. In order to partially avoid this problem, there is the accompanying program, DropBnet, which will disconnect you from Battle.Net (USEast only at the moment) and allow you to connect with another instance. This is useful because once you join a custom game from the custom game list, you can safely disconnect from Battle.Net. As a consequence of this, you will be able to join the same game multiple times. In order to do this:
1. Join a custom game.
2. Run BnetDrop while in the custom game lobby (i.e., before the map starts). You will be disconnected from Battle.net, and will be disconnected/crash if you attempt to leave the lobby.
3. Open a new instance of TFT with TFTLaunch and go on Battle.net, and join the same game.
It may become laggy with multiple instances of TFT open, however.
NOTE: You must place TFTLaunch in your Warcraft III folder, or it will not work. DropBnet has no such requirement, and can be ran anywhere.
Credits to: Darimus