Another possibly easier way to implement: Allow multiselection by holding ctrl and clicking items. Shift+click should select all items between current selection and item being clicked. Will probably take hours to code, but I think it's worth it.
---
I don't want to be the oneThe battles always choose
'Cause inside I realize
That I'm the one confused