So you want to run scripts in multiple threads?
I cant quite see why you require separate engines for this, unless you do not want to 'spoil' the top-level of each 'REPL'.
(define a 1)
a => &undefined
(define a 2)
a => 2
a => 1
The above is possible using (new-interaction-environment) for every window and passing that instance to 'eval' as the environment.
For running in separate threads, you can simply create a wrapper around 'eval' and invoke the expression in a thread(s).
I have not tested IronScheme for any concurrency issues, and would appreciate some bug reports if you find them :)
Hope this helps