Robert, you'll likely get the slapping for the title, so I'll try to get this in quickly.
If you have macros, you might be able to read, adjust and then write back the offset value.
Problem I see will be how to keep track of it and how to re-set it to normal after the replacement.
Perhaps another possibility would be is to write your program with a local sub, where after each execution you change the offset# for the tool
and each offset# will have a slightly smaller value.
For example you have a tool that starts out @ .500 dia, you enter that in offset 5.
Then starting from offset# 20 and up, you put in .490, .480, .470 etc etc.
Each time you re-start the sub, you call it with a new D-value:
D05
M97 P1000
D20
M97 P1000
D21
M97 P1000
etc etc
N1000
G54
T5 M06
G00 G43 H05 S1000 M03
G00 G41 Xnn Ynn ( do not use any D value in the sub )
...
...
G00 G49 G53 Y0 Z0
M00 ( change your part and do whatever )
M99 ( loop back to main, where you change to a new D-value and restart the sub )