The method is not very straightforward. It is like covering a distance of 100 km on a bicycle, for which a car would be more suitable.

You will need to command G32 multiple times, corresponding to each DOC. Since uniform DOC is not recommended, you will need to yourself decide and reduce the DOC for each subsequent pass. But, it can be done.

I am assuming that you know how to machine this thread using G76, but you need to machine it using G32.

On a piece of paper draw a slant line with the same NPT taper, representing the line passing through the thread root.

The horizontal projection of the line (say, L) will be the thread length, including Z clearance. The vertical projection of the line will be L/32 (Using this information, the line can be drawn without using angle measurements).

The specified target point (thread-end point) in G76 will be the coordinate of the left end of the drawn line.

Calculate the coordinate of the right end of the line, using geometry. (Z difference will be L, and X difference will be L/16, since diameter programming is being used).

This line corresponds to the last threading pass. The start point of G32 will be the coordinate of the right end of the line. The end point of G32 (i.e., its arguments) will be the coordinate of the left end of the line.

Now draw several lines of the same length which are parallel to this line and displaced vertically. Each line will represent intermediate threading passes. Choose the vertical displacements between the parallel lines in accordance with the desired DOC. The right end of each line will be the start point of the corresponding G32, and the left end will be its arguments. The vertical displacement between the first and the last line will be equal to the height of the thread (minus the first DOC).

After each threading pass, you will need to retract and bring the tool to the start point of the next pass.

If you need to machine too many pieces with different geometries, then writing a macro can be a good idea.