с помощью js отслеживаешь скролл страницы. на определенном количестве пикселей (100 например) присваиваешь какой-то класс шапке. этому классу прописываешь нужные стили, включая position: fixed. при скролле на меньшее количество пикселей класс убираешь