It looks like BeginUpdate EndUpdate has no effect, the tree list still repaints when updated.
It creates very ugly effect on the top of the tree with all nodes rendered on the first row.
Try this....
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
Node:TTreeNode;
begin
HTMLTreeList1.Items.BeginUpdate;
try
for i:= 1 to 5000 do
Node := HTMLTreeList1.Items.AddChild(nil,'Node ' + IntToStr(i));
finally
HTMLTreeList1.Items.EndUpdate;
end;
end;