<!doctype html>
Script changing col's width, whether via the width attribute on the col
element, or setting width:500px via css, should work.
<table border="1">
<colgroup span="3">
<col id="colForAttribute" />
<col />
<col />
</colgroup>
<tbody>
<tr>
<td>col 1 row 1</td>
<td>col 2 row 1</td>
<td>col 3 row 1</td>
</tr>
<tr>
<td>col 1 row 2</td>
<td>col 2 row 2</td>
<td>col 3 row 3</td>
</tr>
</tbody>
</table>
<table border="1">
<colgroup span="3">
<col id="colForStyle" />
<col />
<col />
</colgroup>
<tbody>
<tr>
<td>col 1 row 1</td>
<td>col 2 row 1</td>
<td>col 3 row 1</td>
</tr>
<tr>
<td>col 1 row 2</td>
<td>col 2 row 2</td>
<td>col 3 row 3</td>
</tr>
</tbody>
</table>
<script>
document.body.offsetTop;
colForAttribute.width = "500px";
colForStyle.style.width = "500px";
</script>