In realtà i frames (anche simulati) non dovrebbero essere più usati. Simulare un frameset coi CSS è molto complesso (e porta notevoli mal di testa con IE, specie il 6), mentre per simulare un iframe puoi usare la proprietà overflow su un box con dimensioni fisse.

Tuttavia, l'uso dei frames, simulati e non, è da evitare per via dell'accessibilità e anche perché sono deprecati dalle DTD XHTML Strict (1.0 e 1.1). Il problema effettivo quindi si sposta dal "come simulare un frameset" al "come gestire le parti delle pagine che devono rimanere invariate". Quindi bisogna appoggiarsi necessariamente ad un linguaggio lato server come PHP o ASP (che ti evita anche le antiestetiche barre di scorrimento tipiche dei frames). Grazie a questi linguaggi puoi, con l'uso di file inclusi o con la stesura di classi, scrivere il codice XHTML delle parti comuni delle pagine una sola volta e riutilizzarlo per tutte le pagine del sito. Potresti ottenere lo stesso risultato con JavaScript, senza quindi ricorrere a linguaggi lato server. Tuttavia questo è da evitare, perché il contenuto delle parti generate da JavaScript non è scritto fisicamente nel codice della pagina e quindi risulta inaccessibile.

Ovviamente, per usare un linguaggio lato server, devi assicurarti che il server su cui hai il tuo spazio lo supporti e, se vuoi testare il codice anche sul tuo PC, devi installare e configurare un web server (Apache o IIS) e l'interprete del linguaggio da te scelto.

Ti consiglierei Apache + PHP, vista la semplicità di installazione e la facilità di imparare PHP. Anche io tempo fa non ritenevo indispensabile un linguaggio lato server quando con i frames fai tutto tranquillamente, ma passare a XHTML Strict significa anche cambiare modo di pensare quando realizzi delle pagine. Pertanto un linguaggio lato server diventa indispensabile sia per semplificarti la vita che per poter realizzare cose molto sofisticate.