Maybe try setting the columns value to empty when the width is 0?
Something like this?
Column<...> itemColumn = new Column<...>(new TheCell()) {
@Override
public Object getValue (Object object) {
if (theDataGrid.getColumnWidth(this) == 0) {
return "";
}
return object.toString();
}
};