Just an idea:
Listbrowser already has checkboxes and string gadgets in cells. So why can't we add buttons?
LISTBROWSER_CellSelect, TRUE, turns it on for entire grid.
Then each cell is just a button gadget with toggleselect and borderless. Then just check it's state like you would the checkbox; use same LBNA_Checked tag.
It might be hard to implement click and drag select, but it is a starting point.
If just text, background color change as if pressed gadget (usually blue).
If is a BitMap object, if Render image only, change background color. If also has Select image, just toggle images. Or have option for both color and image.
Clicking in a cell is still single selection. Shift+click for multi-selection.