by giving position:absolute
to first column you can achieve the effect.
HERE is a DEMO.
.table-data
{
background:#f6f6f6;
overflow-x:scroll;
overflow-y:visible;
margin-left:5em;
width: 60%;
}
table{border-collapse:separate; table-layout:fixed;}
table th td{padding:5px; width:100px;}
table td{border:1px solid gray;}
table td:not(:first-child)
{background:#f6f6f6;overflow-x:scroll; }
table td:not(:first-child):hover
{background:red;overflow-x:scroll;}
table td:first-child, table th:first-child{
position:absolute;
width:5em;
left:0;
top:auto;
background:cyan;
}