There isn’t really an “optimal” setup for WordPress on Apache and PHP. The situation varies depending on your server configuration, quantity of websites, quantity of traffic to your sites in aggregate on this server, etc.
The best thing you can do is reduce the amount of work that your server has to do. APC is good, but that’s just going to cache the PHP. Ideally if you can cache the site as a whole that will dramatically re
duce load. That is a lot more involved with 100-500 websites, obviously but we have had to do it for our servers as well.
You have a few options:
W3 Total Cache for page, database/object, and browser caching
A CDN (e.g. MaxCDN or CloudFlare) for offloading static resources
Other forms of reverse proxy like Varnish, NGINX (as a front end server with Apache as a back end server), or CloudFlare
You probably also need to take a look at the MySQL max connections and memory max settings. PHP memory limits are also something to experiment with (though some sites might require more memory than others).
For the quantity of sites you have on that server, I would recommend focusing on page caching in the sites and offloading static resources (images, CSS, JS) via a CDN as step one. The reduction in Apache and MySQL overhead alone will probably make a noticeable difference.