"he even gave us a list with the name of the global variables (sigh) he wants us to use." -> Your boss clearly doesn't trust his team. Get him to trust you (may or may not be possible), and everything else will follow.
I think so too. It makes me sad, because the whole thing could have been avoided with some better communication and leadership skills.
We programmers tend to look at all things as technology problems, even in the way the question was asked ("inadequate?" what?) when it's almost always an interpersonal problem.
On the other hand, the poster didn't say what this list of global variables is. Maybe they are just configuration values? Probably not, and mentioning threading and global variables probably means some kind of nightmare, but as I've recently been reminded, not knowing all the facts we tend to make up a story in our heads...
I've had to write some C that interfaces with C#, so providing a low level library for a C# UI might be an option, but implementing it without the Boss's permission...yeah probably not so wise.