The HttpRequestPool class provides a solution. Many thanks to those who pointed this out.
A brief tutorial can be found at: http://www.phptutorial.i
You could use pcntl_fork() to create a separate process for each request, then wait for them to end:
http://www.php.net/manual/en/function.pcntl-fork.php
Is there any reason you don't want to use cURL? The curl_multi_* functions would allow for multiple requests at the same time.