Turns out that you can. You can create a regular .NET class library, add a Windows form to it, build the project, and then copy the resulting DLL to C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies.
Then, in the Macros IDE, you go to Project -> Add Reference, select the DLL from the list, and click add. Then you can just use it as a datatype in your macro.
<br>Dim myForm = New MyFormLibrary.MyFormClass<br>myForm.ShowDialog()<br>
Works like a charm. The only problem right now is that it shows up behind visual studio at first.
Edit: why doesn't the code block ever work?