I have found JMeter to work fine, but I generally use is across 4-5 PC's to get the most accurate results.
Although you may believe 120 concurrent users may be difficult to simulate from a single PC, you have to realise that in a real work scenario, 120 simultaneous users will not be accessing the server at exactly the same time, therefore the CPU threading algorithms are sufficient to simulate the load.
What you need to do is to understand the likely usage of your application from your users, i.e. how many requests per second/minute you will get from a single user and make sure that your test simulates this effectively.
So, our technique is to use JMeter running on 5 PCs running different tests, and to monitor the server performance during the tests.
There are of course many other products available that for a price are able to better simulate web traffic, but I have always found JMeter to be perfectly good for my needs.