No
Il multi-threading è una delle cose più difficili nel software per avere ragione. Ci sono troppi casi d'angolo che sono davvero difficili da capire quando il tuo codice non è deterministico. (Sto parlando di multi-threading con serrature ecc.). Inoltre, tutte le varie librerie JavaScript sono basate sul presupposto che non sia multi-thread.
Detto questo ci sono web worker che ti danno un framework basato sugli attori per fare operazioni di tipo multi-processing. È possibile creare lavoratori e passare i dati avanti e indietro tramite eventi.
Modifica
L'altro motivo è che quando JavaScript è stato creato, è stato fatto così con l'ipotesi che sarebbe stato utilizzato per attività di piccole dimensioni, quindi non è stata creata alcuna concorrenza. Per riadattarla ora si romperebbe un sacco di codice. Aggiungendo web worker è stato possibile avere un sistema dove c'è concorrenza senza memoria condivisa, ma usando attori, un modello di concorrenza che si è dimostrato molto robusto in un certo numero di altri linguaggi come Erlang, Scala, Clojure ecc.
(SE non si può dire che non mi piace davvero la concorrenza basata sul blocco)