First of all, if you're asking the question, you might want to take a look at the memory limits for the various versions of Windows. Spawning multiple Apache processes won't do you much good if the OS limits you to 2 or 4 GB of RAM. Also, note that the memory limit per process is variable based on the application itself.
Secondly, the 2 GB per process limit applies to each process. Any process can have up to 2 GB of memory allocated to it, regardless of whether or not it's a child process of something else. Multi-threaded processes are still processes, so there's no side-stepping the limitation that way.
Finally, it doesn't seem like you understand the way Apache (or Windows?) processes work. There's no global configuration for launch [x] processes of [y] application
, or [x] processes of [y] application per [z] cores
, and you certainly don't get a new Apache process for every http
request, so this part of the question is somewhat... unanswerable. The number of processes an application launches is defined by the application (and the user, to some extent). For example, each tab in IE is its own process, but each tab in Firefox is not.
I'd suggest, however, that sidestepping memory limitations by launching multiple instances of same process is probably not a good idea, and you should get a version of Windows that natively supports letting your application have as much memory as it actually needs (or can handle). Consider what's going to happen when you (or someone else) has to troubleshoot a problem, and steps into a webserver running 32 Apache instances to "get around" the 2 GB per process limit and make use of the maximum allowed OS limitation of 64 GB RAM. Someone's going to get murdered.