The problem is that pretty much the entire standard library isn't thread safe. It would take some serious work to get OCaml ready, unless you stick to message passing between distinct processes.
To be clear, it is true that the runtime has a single lock for the GC, so for now, it's not possible to gain physical parallelism from multiple threads. That's being worked on, but I have to say that I rather prefer message passing and I don't know that how we build programs will change much when shared memory threads are available.
http://ocsigen.org/lwt/manual/ http://projects.camlcity.org/projects/dl/ocamlnet-3.7.4/doc/... https://blogs.janestreet.com/announcing-async/
For example you can use them to write HTTP services/clients that scale to lots of concurrent connections without blocking, and the code you write is not that much different from the one you'd write in direct-style.