Да, такая реализация должна быть возможной. В какой-то момент я даже написал простую версию, чтобы доказать, что могу.
Есть несколько хитрых вещей, но большинство вещей (например, мьютексы, условные переменные, потоки) будет простой оболочкой.
Асинхронная отмена - одна из хитрых вещей - она требует поддержки со стороны ОС для асинхронного прерывания потока, поэтому истинная асинхронная отмена не может быть записана поверх «чистых» потоков C ++ 0x. Конечно, вы можете просто отложить отмену до точки отмены в любом случае, хотя, как указывает R, это будет некачественной реализацией функции.