The general solution to this problem requires nested panels. The inner panel is allowed to resize to fit it's contents and does not show scrollbars. The outer panel has AutoSize false and AutoScroll false. By changing the location of the inner panel it may be moved (scrolled) within the outer panel.
This is the idea
Panel outerPanel = new Panel();
outerPanel.AutoSize = false;
outerPanel.AutoScroll = false;
outerPanel.BackColor = Color.Red;
outerPanel.BorderStyle = BorderStyle.FixedSingle;
Panel innerPanel = new Panel();
innerPanel.Parent = outerPanel;
innerPanel.AutoSize = true;
innerPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;
innerPanel.AutoScroll = false;
innerPanel.BorderStyle = BorderStyle.FixedSingle;
innerPanel.BackColor = Color.Blue;
innerPanel.Location = new Point(-50, -30);
Alan.