I did something like this for a customer a while ago, and wrote a short blog post about it today. It might be just what you need, although you may need to add some extra options to it: http://world.episerver.com/blogs/Per-Magne-Skuseth/Dates/2016/8/checkboxlist-ui-tweaks/
Exactly what I needed, better with the column approach!
Glad you found it useful
I have a property that is a checkboxlist and have overriden the ModifyMetadata with:
ClientEditingClass = "epi-cms/contentediting/editors/CheckBoxListEditor";
But I want it to render the list horizontal with some margin between.
What to do?