Yes, because I'd forgotten that the Lisp Machine used the word process for threads.
My knowledge is pretty much limited to the free Common Lisp implementations, since I never had a budget for a commercial one, and their threading story has not been so happy. But that's not a valid criticism of Common Lisp.
I'm running Clozure CL on quadcore ARM-based computers at home. Nicely multithreaded. Works great.
Threads in ECL:
http://ecls.sourceforge.net/new-manual/ch27.html
Threads in Clozure CL:
http://ccl.clozure.com/manual/chapter7.html#Programming-with...
Threads in SBCL:
http://www.sbcl.org/manual/index.html#Threading
ABCL support threads.
Threads in CLISP:
Liquid Common Lisp? The chapter on 'multitasking' is hard to find?
http://www.lispworks.com/documentation/lcl50/aug/aug-103.htm...
Threads are in Common Lisp usually called Processes. The Lisp Machine had them and basically the same API was used in Common Lisp implementations. Allegro CL, Lucid, LispWorks, ...
The entry points have been literally for decades functions like PROCESS-RUN-FUNCTION and MAKE-PROCESS.
> Did the Macintosh do threading as of 1987?
The Macintosh OS at that time did cooperative multitasking. It was supported by Macintosh Common Lisp. Macintosh Common Lisp supported what was possible and the old Mac OS was crippled.
Symbolics had little problem providing Common Lisp. The Symbolics Lisp Machine ran Common Lisp and ZetaLisp side by side in one Lisp. Of course you could call the scheduler functionality from within Common Lisp. Since Symbolics also developed a new scheduler, I guess the new one was written Common Lisp.