Actually that won't be a problem unless you have a real-time operating, multi-multi processor (say, count of 1K Cpu), lots of memory super computer...
In a multi-process system all processes have a time window which is called Quantum Size. Operating systems with multi-process capabilities, which is the case from roughly '80s through '90s to today, swithes back and forth between running processes giving each of 'em that quantum size. This time window is around 20 mili-seconds in our modern operating systems and that switching is being done so quickly with very low switching overhead. Say, if we have one cpu, two processes being switched between, in 1 second, which is equal to 1000 mili-second, we can run them for 900-950-980(maybe) mili-seconds (Difference is gone to process switching). Anyway, as I said, this switching is done so quickly and imagine 50 processes running, we see all the processes are running simultaniously. Actually they're not and that is multi-processing, basics of process scheduling...
When we have multi-threads in processes, O.S. schedules the process first and gives it a quantum, then it schedules the threads in that process. And in that quantum, threads are scheduling, too. When whole quantum ends, O.S. schedules another process (or same according to scheduling algorithm) and threads in that new process are being scheduled, too.
There are two levels of execution enviorenment for threads. One is user level, two is kernel level. The one i mentioned above is user level. Process scheduling, thread scheduling in that quantum size. But, when you go down to kernel level scheduler can schedule different threads from different processes. The quantum is applied to threads directly in kernel level...
After speaking of all that lets begin to understand how an end connection latency may affect server performance:
Your threads must be in kernel level if you want maximum performance, and I know apache threads are not in kernel mode. Apache itself is in user mode, it's a user-end application and its threads runs in user level mode. So you wont get %100 performance from that server in any way... Lets say the threads are runing in kernel mode and you have two cpus. One thread for first cpu, one thread for second. Now two threads really are running simultaniosly. A web worker thread is actually an I/O Bounded thread from O.S. point of view and when it requests for some file it'll be blocked until file is ready. Scheduler will schedule another worker thread to run. When 'that' file is ready, blocked thread will move to ready queue and will be scheduled again. So on so good... What happens if you have 100 worker threads? This question brings another question: When a worker thread is created?
Speaking for web server applications, a worker thread is created when low-level IP connection is made. So, your actual two threads are already running, a new connection established by hardware (they have their own PUs, and interrups main system for data-info transfer), a new worker thread poped up, it' been sent to ready queue for scheduling...
Back to main theme, how an external factor affects system performance. It is all about system limitations. Thread count affects performance wheter system has enough process unit to handle them or not. Basic math, two processors only process two threads at the same time... Network connection badwidth affects performance by "how many connections can it accept". Say a connection data is 10-byte and bandwith is 100-byte per second, you can have 10 connections per second...
Scaling those is up to you. You have to remember just one thing: Your total cpu resource is already processing the threads those are in the ready queue already... So when a new thread pops up it just dont makes things worse for present threads.
Performance can be an issue when the server app. first starts. Quickly it'll hit top-limit. It is kind of acceleration of a car. It will accelerate first, and hit top-speed after some time. You can go top speed until you ran out of gas or put your feet out of gas pedal.