I had got off on the wrong foot in my first reply, thinking that what you were wanting to do was hold the cutting head at a constant height above the target, much as I understand they have to do in plasma cutting. What you seem to be indicating is that what you are wanting to do is alter the X or Y position so that when the jet is pointing at an angle, the same spot is targeted, as when the jet is vertically above.
The amount of offset is clearly dependent on the mean height of the cutter above the target, and the angle at which it is shooting.
I am trying to think of the easiest way to implement this. Becasue I am used to macros my first thought is a macro. e.g. M1001.
The macro would take in the present position and height of the jet, and the angle at which it is, and if it is not vertical, compute the offset and apply it to X or Y as required. This would mean adding the M1001 (or whatever you use) to your GCode, whenever you want the offset to take place. That I could see working, although how practical it would be to implement would have to be seen.You could, as below, use B or C in your code, and a simple "replace" task would insert the Macro which would then write the GCode.
The alternative may be a brain, but I have very little experience of them. You may, for example be able to program the plan of the cut say as though it were a B or C axis, and then the brain instantaneously translates this into offsets for X and Y dependent on the angle of A. Perhaps some "brainy" people might comment.
All in all, a "post processor" might be the answer, where you run your raw GCode through the computer, and it looks at it and applies offsets where required, and rewrites the GCode before you apply it to your machine.
Sorry I can't be much more help - but someone out there must know.