<p>The test form generated by ASMX is pretty handy for testing operations.  However, there is no apparent way to include SOAP headers.</p>

<p>How can you test your headers without programming a client to use the service?</p>

Instead of directly accessing the headers, provide an abstraction that your code accesses instead. For example, if you have a header called "Customer", you might provide a context class you can access like so:
string customer = MyContext.Current.Customer;
Now, all you have to do is swap in a mock implementation in your test classes that doesn't require all the plumbing.
Note, however, that testing ASMX outside of a web server isn't exactly ideal since it can miss things like serialization. If you could deploy to a test server and test the deployed copy, you would be better off. If you really care about testing, WCF is a better option since you can self host WCF rather easily in tests.