В Си многопоточность.обычно реализована в библиотеке pthreads.h
Многопоточность реализуется операционной системой. pthreads - просто библиотека, чтобы операционной системе сказать, мол, вот тебе отдельный поток для запуска
причём Си можно отлаживать как код на ассемблере
Ну да, Си всегда сначала компилируется в ассемблер, любым дизассемблером готовую программу можно разобрать на кусочки.
Прочитал в интернете, что ассемблерная программа может выполняться только на одном ядре.
Покажите, где такая ерунда написана
Как тогда реализована многопоточность в Си
В Си - просто интерфейс управления многопоточностью. Сама многопоточность - в операционной системе.
раз есть эквивалентный код на ассемблере например, в gnu debugger
Как в Си, так и в ассемблере вы просто увидите "вызвать pthread_create", и всё