Even if you're forking processes for concurrency, all memory pages assigned to the process at fork time are shared and use copy-on-write semantics, so anything that doesn't change doesn't consume real memory in each additional process. I don't know how much outside of each thread's/process's heap and stack sees writes in apache, but I suspect the difference between threads and processes is pretty slim in this respect.