Someone else has thought about doing this before, the easiest way to do this would be to buy a programmable system (like Zeeltronics), and have a base mapping to work from. It's long a tedious work trying to get a good map designed up, and potentially costly as you may seize a few times a long the way.
The other way you can do it (I've been thinking about this way) is to fuel inject the thing. You pick up something like the microsquirt and again you need a base mapping to start from.