You asked this question a while ago and you might have found an answer by now, but in case you have not here are some ideas.
1. Cover the TableView with a transparent panel and use this to detect mouse movements connected with the drag-drop operation.
2. Do not try to drag the labels themselves - use a proxy label to give the visual appearance of the drag operation and, at the end of the drag-drop, simply switch the contents of the two labels involved.
I attach a demo program. I did not want to spend too much time if you had already found an answer, so I used a simple button grid rather than a TableView. With a TableView you will have to check the scrolled position to determine which labels are under the cursor at the start and end of the operation, and if you want to be able to drag labels outside of the current TableView area then you will have to sense the mouse position as it approaches the edges of the view and scroll appropriately. That will probably involve a timer.
Finally, this is only a demo program - it might contain bugs.