Try the Buttons... as checkboxes or radios as Sandy suggested.
You can set Borders to indicate 'look' for the button state is 'down'.
You could also do the 'Insert Variable' into the Button text, and have that change, say to an 'X', when Button is down (as variable changes).
That all works fine if your list of items is going to be somewhat fixed (in content) and the list isn't any longer than 800 items. More than that and managing individual buttons and maintaining aligment gets to be a chore.
There are probably some things you could do with String manipulation and or selection styles.
* concatenate or append strings, ReplaceSelection() based on where user clicks... to add or remove special characters.
* toggle between a couple styles (font?) for first character of a line when a user clicks on it.
Those could be somewhat simple, or rather involved. Depending what you're working with. And how much you expect the pub to change.
The approach you choose will depend on what subsequent uses you make of those User selections. It sounds like you might be defining 'sets' on the fly. On the other hand, "...do whatever I want with them..." is hard to read between the lines (pun intended).
Another: If the item list is kept in an external file, you could use ReadLine() functions... and I think you could have a TextObject in parallel as a Control List that would essentially allow User to click on those lines to operate on the other main list.... then control list items are Indices for other Reads and writes with that file.... Just depends on the goal. Also, parallel Arrays may be useful.
Good luck.