Yes, it can be done.
Electronic ignitions have been around for a long time. You could insert a circuit between the points and the ignition coil that delayed the opening of the switch that controls the primary of the ignition coil. Note that it is the opening of the switch that causes the spark, not the closing. You can think of the switch (originally the points in old mechanical systems) closing as applying power to the coil to "charge it up", then the opening causes the accumulated energy to be released out the high voltage lead.
I'd probably use a microcontroller to do the variable delay. To get a rough idea of the resolution needed, let's go thru some numbers. Let's pick 6000 RPM as the fastest engine speed, which is 100 Hz rotation rate. That means a full rotation takes 10 ms, and 1 degree of rotation takes 28 µs. From all that you can decide that 10 µs resolution for the delay should be adequate. A dsPIC 33F can execute 400 instructions during that time, so this is well within the doable range.