Du könntest das Ereignis OnMouseDown verwenden und von dort das PopupMenu manuell anzeigen.
Delphi-Quellcode:
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
p: TPoint;
n: TTreeNode;
begin
n := TreeView1.GetNodeAt(X, Y);
if (Button = mbRight) and (n <> nil) and (X in [n.DisplayRect(True).Left..n.DisplayRect(True).Right]) then
if GetCursorPos(p) then PopupMenu1.Popup(p.X, p.Y);
end;