При большом количестве страниц вам понадобится какой-то многопоточный подход, потому что вы будете тратить большую часть времени на ожидание сетевого ввода-вывода.
В прошлый раз, когда я играл с потоками PHP, это был не слишком удачный вариант, но, возможно, это изменилось. Если вам нужно придерживаться PHP, это означает, что вы будете вынуждены использовать многопроцессный подход: разделите вашу рабочую нагрузку на N рабочих блоков и запустите N экземпляров вашего скрипта, каждый из которых получает 1 рабочий блок.
Языки, которые обеспечивают надежные и хорошие реализации потоков, являются еще одним вариантом. У меня был хороший опыт работы с потоками в ruby и C, и кажется, что потоки Java также очень зрелые и надежные.
Кто знает - возможно, потоки PHP улучшились с тех пор, как я в последний раз играл с ними (~ 4 года назад), и стоит посмотреть.