eso se hace preferiblemente con un script del lado del servidor como php, en donde usas include para agregar el contenido de un archivo dinámicamente a otros:
de ese modo todo cambio aplicado en header.php automáticamente se reflejará e las demás páginas, peo las mismas deben de ser procesadas por php e incluir el código anterior, header.php puede o no ser php, puede incluso ser un txt
con SSI también se puede:
http://www.webtaller.com/maletin/art...e-includes.php
otra manera, pero menos efectiva es cargar mediante AJAX el contenido html del archivo a otra capa, pero esto requiere una peticion http extra, por eso es la menos recomendable