Provide a checkbox in the column header that will set or unset all checkboxes in that column.
Assign a custom label to the column containing a unique checkbox, then provide a column formatter to create a specially named checkbox into each data cell. Attach a listener to the header checkbox to loop through the tbody checkboxes, setting their value to its own.
Caveat: Tables that support column sorting (as this does) will need to store the checked state of the body checkboxes because when the table is sorted, the current contents of the rows will be blown away, getting a fresh (otherwise unchecked) checkbox.