Furthermore, authors may
declare column properties at the start
of a table definition (via the
COLGROUP and COL elements) in a way
that enables user agents to render the
table incrementally rather than having
to wait for all the table data to
arrive before rendering.
This important note on column properties does not change the functional structure of the table but does allow for flexibility in both styling a table as well as semantically describing its data. Specifically, associated row and column data provides benefits to screenreaders.
That stated your table is still structured by row and then column. The colgroup and col elements are used prior to the actual table structure appearing before thead.