1. Никакой проблемы в нескольких потоках создавать несколько драйверов нет. Если умеешь в многопоточность как концепцию, конечно.
2. PhantomJS работает без гуя и требует относительно мало ресурсов - в этом его преимущество. В headless mode умеет еще geckodriver (firefox), но он более прожорливый. Зато можно всегда этот headless mode отключить и посмотреть, что происходит.
3. В целом все это работает примерно так: ваша программа -> библиотека selenium -> selenium server(открывается на локалхосте) -> драйвер браузера -> браузер. Соответственно язык может быть любой из тех, для которых есть библиотека, а браузер любой из тех, для которых написан драйвер.