Hi,
No, this is not really going to work out easily.
What I suggest is to create a delegate class in normal cpp that extends the b2Draw class, say Haxeb2Draw.
From haxe code (using externs) create an instance of Haxeb2Draw and, pass in a Handler which has the appropriate functions on it.
Then, for each of the virtual functions, have the Haxeb2Draw directly call the appropriate methods on the Handler class.
A couple of tips:
Store the instance of the handler class in an "AutoGCRoot" in the Haxeb2Draw class. This means the handler will stay alive as long as it is needed. Then, in the destructor of the Haxeb2Draw, delete the AutoGCRoot, allowing the handler to be collected.
Put the implementation of the Handler class next to your hx code, and make sure the build.xml files compiles it all in together. This will help keep it in sync with your Handler class.
I have glossed over these details, but please ask if you want to go down this path an need more info.
Hugh