See the DesignModeDialog sample. This sample is a component, much like the common dialogs, that has a ShowDialog method. When invoked, ShowDialog takes a snapshot of the parent form, clones all the controls and creates a new designer form with the controls and a property grid to edit select properties. The list of editable properties is a property on the DesignModeDialog which can be changed too. When the design form is closed, the changes are read and put back into the original controls on the running form.
For more information on this sample, see http://blogs.msdn.com/mharsh/archive/2005/03/14/395304.aspx