Многопоточность PhantomJS это вопрос к исходникам. Одна нода PhantomJS-а способна принимать по Webdriver запросы по загрузке разных страниц. Т.е. работать с несколькими сайтами одновременно в рамках одного запущенного PhantomJS возможно. С одним сайтом под
одним аккаунтом проблематично. Поэтому если нужно работать с одним сайтом под одним аккаутом параллельно, то проще всего запускать несколько экземпляров PhantomJS, а потом из приложения разруливать запросы на разные ноды.
Лично сам делаю так из PHP. В приложении пишется запускалка нод, а так же роутер запросов. В принципе что-то готовое на Java есть, нужно смотреть в сторону Selenium Grid (
вариант от Яндекса). Но сам не использовал, у меня нет смысла размывать стек явой.