See answer to alignment and multiple columns below...
1. ShowHeader="true" style="max-height: 30em;overflow-y: scroll;"
<asp:GridView ID="GridView1" class="table table-responsive table-bordered" ShowHeader="true" runat="server" style="max-height: 30em;overflow-y: scroll;"
OnRowDataBound="GridView1_RowDataBound" AutoGenerateColumns="false">
2. th {
background: cornflowerblue!important;
color:white!important;
position: sticky!important;
top: 0;
box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.4);
}
th, td {
padding: 0.25rem;
}
table#ContentPlaceHolder1_GridView1 {
white-space: nowrap;
}