Hi Jon,
Your approach doesn't sound that awful. Checkboxes in a table are how
most web-based email works, and most people today are familiar with
email.
Many workflow applications like publishing or shipping, where users
select several items and then update their status, behave in a similar
manner.
How many different reasons are there? If it's only a few and they're
short enough, they could be buttons. Think of Gmail: select and click
Mark Read. How often do people need to describe an "other" with a
custom reason?