パネルでDrawToBitmapメソッドを呼び出し、ビットマップを回転して、たとえばPictureBoxに表示することで、途中まで到達できます。
var bitmap = new Bitmap(panel.Width, panel.Height);
panel.DrawToBitmap(bitmap, new Rectangle(Point.Empty, panel.Size));
bitmap.RotateFlip(RotateFlipType.Rotate270FlipNone);
var pictureBox = new PictureBox();
pictureBox.Location = panel.Location;
pictureBox.SizeMode = PictureBoxSizeMode.AutoSize;
pictureBox.Image = bitmap;
Controls.Remove(panel);
Controls.Add(pictureBox);
GDIを使用してビットマップを別のビットマップに描画する場合、90度の増分以外の回転角度も可能です。
var bitmap2 = new Bitmap(bmp.Width + 75, bmp.Height + 100);
var graphics = Graphics.FromImage(bmp2);
graphics.TranslateTransform(bitmap2.Width / 2, bitmap2.Height / 2);
graphics.RotateTransform(-15f);
graphics.TranslateTransform(-bitmap.Width / 2, -bitmap.Height / 2);
graphics.DrawImageUnscaled(bitmap, Point.Empty);
graphics.Dispose();
もちろん問題は、パネル自体ではなく、パネルの画像のみを表示しているため、内部のコントロールを操作できなくなることです。
それもおそらく可能ですが、ウィンドウメッセージをいじる必要があり、かなり複雑になります。必要に応じて、PictureBoxでクリックイベントとキーイベントを処理し、パネルのコントロールを操作してから、画像を更新することもできます。