I think you're saying you want three lists, and they should all have a different selection, so whichever one is in one list, selected, is not in the others. This is easy to do, if you create a list in memory. When the selection of one changes, you repopulate the others, making sure you first store so you can again set the selection. But, as others said, this is horrible UI.
A web site I work on did this, and in our case, there were three boxes, and three options, the idea was that each had to be selected once, to set an order. I used
JQuery UI[
^] to replace this with a drag and drop list. If you have more than three items and this is not good UI, then I agree that one single multiselect list is way better as a way of doing this. Or you could do a drag and drop between two lists, so the second always has no more than three items, and must have three, to select the three you need.
This[
^] also seems like a good option.