It’s certainly possible, but I worry that weird things can happen when doing something as “simple” as defining a property if another thread is messing with the prototype chain. Even thread safe property maps can’t entirely save you because operations that need to go up the prototype chain are not and cannot be atomic.
This won’t work well without a few other things, like structs
My blog post explains how to make prototype chain operations work in the presence of threads