That's an interesting problem. The datatables forum has a discussion very closely related to the issue you are encountering.
http://datatables.net/forums/discussion/11967/aocolumns-when-number-of-columns-vary/p1
Allan Jardine, creator of datatables, is part of the discussion, and his first reply recommended using aoColumnDefs and showed how you could do aTargets: [ '_all' ]
to take care of the issue of variable number of columns.
So based on a quick scan of the discussion on the datatables forum,
here's a fiddle that might get you close to what you are looking for:
http://jsfiddle.net/nLYLv/
$('#ctl00_ContentPlaceHolder1_GridView1').dataTable({
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"aoColumnDefs": [
{"aTargets": [ 1 ], "bSortable": true },
{"aTargets": [ '_all' ], "bSortable": false }
],
// force the arrow to show on 2nd column
"aaSorting": [[1,'asc']]
});