Nate Thompson compiled a tutorial on how to implement drag & drop in NSTableView. It's a good read.
I remember how weird it felt to implement this the first time. Drag & drop is actually realized via the pasteboard. So it's more like cut and paste with a visual representation. From this you get the ability to put multiple content representations into the pasteboard at once, so the drop container can decide how to handle whatever it receives.
Browse the blog archive