Restricted reodering of columns through drag and drop in Grid

We are using unbuffered grid, in which there is one header row with two cells namely header1 and header2, each having 3 subcolumns. The requirement is to allow the reordering of header1 and header2 but restrict the movements of subcolumns by drag and drop. Following is the code, I have added.

[i]
Grid.HeaderRow groupingHeader = gridRef.prependHeaderRow();
Grid.HeaderCell Header1 = groupingHeader.join( groupingHeader.getCell(col1), groupingHeader.getCell(col2), groupingHeader.getCell(col2));
Header1 .setText(HEADER1);
 Grid.HeaderCell Header2 = groupingHeader.join( groupingHeader.getCell(col4), groupingHeader.getCell(col5), groupingHeader.getCell(col6));
Header2 .setText(HEADER2);
gridRef.setColumnReorderingAllowed(true);
[/i]

We need to freeze the reordering of col1, col2…col6 and the reordering should be possible for Header1 and Header2 only. Is this behaviour acheivable in unbuffered grid?