^^ interesting. Somebody start documenting the Arc thread model quick ^^. The only thing I understood in the Arc thread model is (thread (expr)); also, there are those "queue" thingies in arc0/arc.arc which look quite interesting (possibly useful for message passing).
First, we need to build an Erlang-style message passing technique, then abstract away the messaging aspect in macros, and then provide a generalized (parallel-map ...) macro.
But one of the sources of the strength of Erlang's model is inherently built-in the language---many things are passed by value, including aggregate types, so that GC can run per-thread and you don't need to care about synchronization. You can implement the same model on top of other languages (e.g. see Termite http://lambda-the-ultimate.org/node/841 ), but you do change the language's semantics.