The sender is the control that is handling this event, in this case it would be the destination dropped on control.
It may seem strange to be notified of this since this event was created just for the same control but this sender can be used in the event where another control decides to call some one else event instead of their own. In This case the SENDER would be the control it got dropped on but not the control that originally created the event, basically you can create a single event for many controls..
The SOURCE in this case is the CONTROL that started the drag.
so it looks like you are doing things backwards. The focused node is that of the SOURCE
and the TTreeView(Source).SelectedNode is what you need I guess.
P.S.
YOu need to make a copy reference from it and create a new one for the dropped control.
When done, you need to delete the one from the source I guess, if that is what you want to do.
procedure TForm1.ListView2DragDrop(Sender, Source: TObject; X, Y: Integer);
var
N,NN:TListItem;
begin
N := TListView(Source).ItemFocused;
NN := TListView(Sender).Items.Add;
NN.Assign(N);
Something like that, you can elect to remove the IListItem from the source if you wish.
P.S.
I made a mistake, wrong control Sorry, but you get the idea.
Use the Node at..... to get the node/