OCaml had threads. There even a Threads module in standard library. The limitation was that only one thread can run at any given time.
P.S There were ways around it, like calling an extern C function which will spawn a new theead and call and pass the control back, but those were almost never used.