Apache keeps a number of processes 'waiting for action'. That number is set in your httpd.conf file. Whenever a new request comes in, Apache will direct the request to one of the available processes. The number might drop a little when some processes are not in use, but there is typically a lower bound to how much it will drop.
Depending on whether you use 'Worker' or 'Prefork' as your process manager, the settings are slightly different:
From httpd.conf:
prefork MPM
- StartServers: number of server processes to start
- MinSpareServers: minimum number of server processes which are kept spare
- MaxSpareServers: maximum number of server processes which are kept spare
- ServerLimit: maximum value for MaxClients for the lifetime of the server
- MaxClients: maximum number of server processes allowed to start
- MaxRequestsPerChild: maximum number of requests a server process serves
worker MPM
- StartServers: initial number of server processes to start
- MaxClients: maximum number of simultaneous client connections
- MinSpareThreads: minimum number of worker threads which are kept spare
- MaxSpareThreads: maximum number of worker threads which are kept spare
- ThreadsPerChild: constant number of worker threads in each server process
- MaxRequestsPerChild: maximum number of requests a server process serves
Chances are that you have your 'StartServers' and 'MinSpareServers' set quite high. Take a look at this page on optimizing Apache for low memory.