Conceptually, you could use a second window (call it a "Mirror form") to duplicate the primary form. Capture the screen for the primary form and display the captured portion on the mirror form.
That part is the easy part. If you want to be able to actually interact with the Mirror form, you'll need to capture all user input such as mouse move, hover, click events, and keyboard events and replay them onto the main form.
You might be able to do that with the event handlers on the Mirror form by capturing all of them and replaying them them on the primary form. However, I'd look into capturing the messages on the mirror form. That is probably more comprehensive and probably a cleaner way code wise to "monitor" the events and send them over to the primary form. You can also "eat" messages going to the mirror form that would cause focus to change (e.g. there may be an issue if input focus suddenly shifts from the primary form to the mirror form while the user thinks they're interacting with the primary form).
For more info on Messages look into overriding then WndProc of the Form (which is really Control.WndProc) and here. A nice overview article is Deliver The Power Of Spy++ To Windows Forms With Our New Tool. It also deals with cross-process communication which isn't relevant but explains a lot of the detail on messages and intercepting them.