You could try to make the Panel double buffered.
Create a class as following:
public class PanelDoubleBuffered : System.Windows.Forms.Panel
{
public PanelDoubleBuffered()
{
this.DoubleBuffered = true;
this.UpdateStyles();
}
}
Then instead of using the Panel use the PanelDoubleBuffered. This avoids flickering and should also fix scrolling.
I'm not entirely sure if this works for controls but it sure does for drawing. You could give it a try :)