Реализация атомиков с нуля ручками вполне реально, если знакомы с особенностями компилятора и набором интринсиков fence/interlocked
То же самое касается и thread (да многих вещей, из Буста пришедших)
Совершенно нельзя заменить только то, что реализуется исключительно на уровне языковых конструкций и внутренней логики компилятора