Or should I create multiple TOR socks ports and use one for each client?
I plan on running bitcoind, namecoind, litecoind, etc... all on the same ubuntu machine running under different users but all going though the same TOR connection.
I don't think there any good reasons to use multiple SOCKS listener ports on the same tor in your situation. After all, it all ends up in the same place.
I can't possibly imagine to connect *coin, or P2P application in general, via TOR. They run slower and TOR from scratch wasn't designed for tunneling bandwidth hungry application.
But if you insisted, it would be safer to have private exit node, or frequently change identity per 15 minutes or so. You can use same SOCKS port for all, they use same exit node.
Should work just fine. Will be slow at the beginning, I recommend running the clients on the clearnet just to get the majority of the blockchains, then connect to Tor and start actually using the clients.