Soluzioni diverse da JavaScript le escluderei... l'idea del position:fixed non è male ma dovresti poter fissare le larghezze delle colonne come ti è stato suggerito... NON SO, MA NON PENSO che funzioni tentare di impostare position:fixed solo sulla riga di tabella che contiene le intestazioni.... (e se anche funzionasse mi aspetto che questo non sarebbe compatibile con tutti i browser....)