I removed the position absolute from the row rule and it worked for me (chrome, firefox)
.gridRow, .gridHeaderRow{
display:table-row;
}
In case you want to have a fixed header, you could separate the header like this:
<div class="gridTableBox">
<div class="gridTable gridHeaderTable">
<div class="gridRow">
<div class="gridCell">T1</div>
<div class="gridCell">T2</div>
<div class="gridCell">T3</div>
</div>
</div>
<div class="gridTable gridBody">
<div class="gridRow">
<div class="gridCell">a</div>
<div class="gridCell">JKL;</div>
<div class="gridCell">Jb</div>
</div>
</div>
</div>
Now you can giv the gridHeaderTable div a absolute positiion without breaking the table-layout.
Updated fiddle is here.