@Daniel the Finlander: I don't think 64 bit will speed anything up. If anything it should slow things down very marginally, since pointers are twice as large, and thus use up twice as much memory. The main reason to use 64 bits is that it's capable of addressing huge amounts of memory (using current standards), thus doing away with the 2 GB memory access restriction. Actually using more memory will slow things down since more time will be spent shuffling data between the hard disk and memory, and between memory and the processor (through the caches).
I agree retro fitting threading into a huge non threaded program is a daunting task, but it will probably have to be done at some point. I'd start with stuff that have a minimal data overlap with the rest of the program, with world events outside the fortress for fortress mode being a candidate (nothing happening outside should ideally affect anything inside except when someone from the outside brings the information into it, and vice versa). Implementing that might require two copies of the outside world state, with one being the "truth" and the other being what's known locally and thus being available for engravings etc (not separating data means it has to be protected against concurrent access instead, or you can get nasty hard to track down bugs when data is read at the same time as it's written/updated). The upside of that is that it could enable DF to deliberately twist the local knowledge on synchronization, if desired (i.e. diplomats, traders, and spies feeding lies and propaganda to the fortress, "fog of war" might obscure some knowledge about distant parts of the world, etc).