Intenta con este código en el evento OnDragOver del árbol:
Código Delphi
[-]
const
DistanceToScroll = 40;
begin
if Y <= DistanceToScroll then
SendMessage(TreeView1.handle, WM_VSCROLL, SB_LINEUP, 0)
else if Y >= TreeView1.ClientHeight - DistanceToScroll then
SendMessage(TreeView1.handle, WM_VSCROLL, SB_LINEDOWN, 0);
end;
DistanceToScroll es la distancia al borde (superior o inferior) para que empiecen a desplazarse los nodos. Ajústala a la medida que te satisfaga.
// Saludos