I guess a template could be done. Why don't you look into it?
You might learn quite a bit from doing something like that. I remember hearing of a linker that could resolve exports/imports directly from the executable image you were trying to link to, so there would be no need for libraries. Maybe try googling GoAsm and GoLink or something like that. I'm pretty sure it had "Go" in the name. (I could be wrong).
The only ugly thing is that Outpost2 exports a lot of decorated names. So if the linker is going to find them, you'd need to type the decorated names exactly as Outpost2.exe exports them. Needless to say that's a huge pain in the butt. Maybe you can do something to allow for shorter/simpler names though.
On the other hand, why have something in asm? There isn't any real benefit to coding DLLs in assembly. Most of the code is in InitProc, and only gets run once for the initial setup. Even if you have lots of code outside of InitProc, speed still shouldn't be an issue. It seems like asm would mostly just make it harder or slower to write DLLs. That and you can always use the inline assembler in a C++ project. But then, I'm sure a download package for making DLLs in assembly would be really tiny.