1. To make a drag-and-drop scenario between two RadListBoxes you should implement your custom logic that match your need. I have prepared a simple example application that demonstrates this.
2. To achieve the described behavior, your object list should implement the IBindingList interface. You could find more info in MSDN. In addition, there is a simpler way. You could use the BindingList(T) generic class that natively supports data binding. I have included an example implementation in my project too.
Please, find my example project as attachment.
I hope this helps. If you need additional assistance, do not hesitate to contact me again.