Isso está muito errado. Sinceramente, não são surpresa os downvotes.
É uma desinformação produzida por consequência de analfabetismo funcional (quando você sabe ler a palavra, mas não sabe o significado).
Uma execução assíncrona não implica em processamento paralelo.
"Assíncrono" significa "que ocorreu fora de sincronia", ou em palavras mais simples "que ocorre em outro momento que não o momento da definição/deflagração".
Promises são assíncronas porque não se resolvem no momento em que são disparadas. Ou seja, o código posterior à deflagração da Promise é executado mesmo que a Promise não resolva. E a Promise é resolvida somente quando tudo que precisa estiver disponível. Ela fica aguardando a solução e só então é resolvida. É o mesmo caso dos eventos. A callback fica aguardando o evento ocorrer pra só então executar, portanto também é um procedimento assíncrono, porque não ocorre no momento da definição.
Portanto, sim, JavaScript também é assíncrono. E, mesmo que o PHP não tenha nativamente blocos de execussão assíncrona, nada impede uma implementação assíncrona (vide diversos pacotes disponíveis na internet para esta finalidade). Ainda, o PHP tem SplObserver e SplObservable, nativamente, que são mecanismos assíncronos, afinal, as funções só executam quando ocorre uma mudança/notificação.
Agora, se o assunto é processamento paralelo/concorrente, aí a história é outra.