I have looked at my code and re-read your post and actually I'm not sure what you are asking. There could be 2 approaches.
In one you have a T6 macro which, when a new tool is inserted, goes off to a tool setter of known height, probes it, lifts up to another known height and sets the Z DRO to that value. The tool is now calibrated and you can carry on the job. The tool table isn't needed at all in this approach since the tool is re-calibrated on each change.
Alternatively you could pre-calibrate all the tools provided you can guarantee they are always reinserted with the same projection. So each tool would need its own holder. The tool table is pre-populated with this data. When you insert Tool No. N then you tell the machine which tool is being used and it will know the diameter and height from the table.
My lathe uses the second approach. The tools are held in QC holders that clamp precisely onto the toolpost. I tell the machine what tool number is being used and it adjusts the offsets as needed to turn a precise diameter, and if needed a precise Z offset.
The tool table is populated by a macro which controls the probing process. I'd be happy to share a copy but as it's for the lathe and depends on my own custom probing system it may not be quite what you need. The key statements in it for you are:
Call SetToolParam(ToolNo, 3, X_pos) 'Writes X offset to tool table
This calls a Mach3 routine which writes a number "X_pos" to column 3 of the table in the row labelled ToolNo. A similar statement is used for the Z offset but in a different column.
To share tool data between your CAM and M3 you will probably need to first export the CAM tool table into a suitable file format then write it into Mach3. Unfortunately there isn't a "native" M3 tool to do that but there are macros written by people in this community which can import and export into/from Mach3. Somewhere I have copies but can't lay my hands on them right now, will have a look tomorrow.