Нет, volatile не гарантирует, что расположение будет записываться или считываться атомарно, только компилятор не может оптимизировать многократное чтение и запись.
На некоторых архитектурах процессор будет атомарно читать или записыватьесли выровнены правильно, но это не универсально или даже не гарантируется семейством процессоров.Там, где это возможно, внутренняя реализация atomic будет использовать архитектурные особенности и атомарные модификаторы команд, так почему же не использует атомарный, если вы имеете в виду атомарный?