Дык просто же. Читаете про html frameset. Ставите два фрейма -- верхний для шапки и нижний для сайтов. В верхний ставите src=ваша шапка.html, в нижний src=сайт.ру
Сайт.ру при таком подходе будет свободно работать в вашем фрейме, при условии что у них ссылки не с target=_top
А если работоспособность чужого сайта не нужна и хочется без фреймов, то можно делать div-ами, заполняя нужный div контентом сайта, взятым через Сurl, например (только тогда вам там программно нужно будет много что менять в чужом html коде, так что это такое себе).
Или анонимайзеры как работают. Берут весь код сайта, парсят его, меняют ссылки (типа если запрошен сайт.ру, то "href='/' и src='/'" меняются на "href='ваш сайт?url=сайт.ру/' и src='сайт.ру/'"), плюс перенаправляют POST и GET запросы в себя, отправляют их на запрошенный сайт и отдают результат. В общем это трудоемкая весьма задачка если выбирать этот подход.