To avoid the heading repeating you need to have the heading outside of the loop, for example:
table tr td headings /td /tr foreach (server_list as server) { tr td server details /td /tr } /table
The reason for some ID numbers missing is you have hide offline, for example in that pic server 6 is offline. If you just want continious numbers down the side then don't use the id.