Необходимо различать спецификацию и реализацию.
POSIX - это спецификация , и (я думаю) ваш лектор прав, что POSIX не диктует, что потоки должны управляться ядром и выполняться параллельно (по крайней мере, я не могу найти связанная формулировка в официальной спецификации ).
На практике большинство основных реализаций - в том числе (как упоминалось в другом ответе) в Linux через glibc и в Windows через MinGW - реализуют pthreads через системные вызовы ядра и выполняют их параллельно. Так что, если ваш лектор фактически заявил, что pthreads не являются потоками ядра в конкретном использовании, то это, по крайней мере, вводит в заблуждение и, возможно, неправильно.