Your problem is that you are adding only one control at a time. Adding a control leads to a complete update (rendering of the GDI + software is rather slow) of the parent panel (the best option) and, possibly, the entire form (worst case).
, Panel.Controls.AddRange. .
, - ( ) .
UserControl , - . , ! , , .