you can reuse, but due to a memory bug, you should only expect 50 or so reuses before it crashes. the related issue is here, which includes an example showing how to reuse pjs instances:
https://github.com/ariya/phantomjs/issues/11390
because of this issue, I had to setup a pjs cloud service provider (as I need to scrape about 100 pages/sec) so i have experience trying to do what the OP is saying: generally i can fit 10 pjs instances per machine, with the main bottleneck being CPU, not ram. even on a big developer pc, i was only able to run about 15. so 100 per machine is going to be pretty impossible i think.
you can try out my pjs cloud service at
http://PhantomJsCloud.com, but it's only for scraping right now (the awesome automation / test features of phantomjs are not implemented yet) If you want to roll your own cloud, there are a lot of great npm packages that help integrating pjs with node, so check that out (even if you don't use node, seeing how they do pjs<-->node communication would tell you how to implement it in your own language)
-Jason