Thanks for suggesting tape, Stick. That's much easier and faster.
Back to the big picture, I finally figured out the puzzle that's been haunting me... a router centric solution that works even if pegboard spacing wasn't perfect...
- Make a custom router sub-base and attach to the bottom of it a length of miter-slot-rail 3/4" wide x 3/8" deep. The chosen spacing from the rail to the bit will ultimately determine the spacing of holes, in my case either 4" or 96mm (not sure yet).
- Put a 3/4" dado or mortising bit in the router and attach the custom base to the router.
- Get a piece of material to use for a jig, 3/4" thick, and as big as you want the jig to be. Ensure the jig stock is square, as it's squareness is the reference to square the grid of holes.
- Running the miter-slot-rail of the against one edge of the jig stock, cut a dado in the jig stock. The final depth must be slightly greater than the depth of the miter-slot-rail (3/8").
- Running the miter-slot-rail in the just completed dado, cut another dado parallel to the first. Repeat this procedure until the entire jig stock is covered with parallel and perfectly spaced dados.
- Repeat steps 4 and 5, but referencing from a perpendicular edge of the jig stock. The result will be a grid of perfectly spaced dados all over the stock.
- Mount a second miter-slot-rail on the router base, perpendicular to the first and spaced from the bit the same distance as the first. To do this, place the first rail against the first referenced edge of the workpiece and align the bit to the first perpendicular dado created in step 6. Now the second miter-slot-rail may be positioned against the edge of the jig, and clamped to the base. Test to confirm spacing perfectly matches the bit to both dados, then drilled through the base and rail for mounting screws.
- The custom sub-base with two perpendicular miter bars can be used to accurately position the router at each dado intersection in the jig stock. Mount the desired router bit for dog holes (3/4" or 20mm), and plunge the bit to bore the required holes referenced from each dado intersection.
- You now have a fully bootstrapped jig which may be clamped to a workpiece with holes positioned as desired, then the router with the custom base may be plunged at each intersection to create the required holes.
The accuracy of this procedure depends on the miter-slot-rail precisely fitting the slot cut by the dado bit in making the grid of dados. Any size rail and bit could be used as long as they match without slop.
The accuracy also depends on the squareness of the two edges which are referenced in beginning the initial dado (step 4) and perpendicular set of dados (step 7).
Any size hole spacing is possible, as determined by the initial distance from the miter-slot-rail to the bit in step 1.
Any size hole is possible, as determined by the final bit chosen in step 8.
Now that the puzzle isn't haunting me anymore, I'll probably use the pegboard solution anyway and save routing all those dados. I still haven't found the right rabbet/bushing/cutter combination to enlarge the original by exactly the amount required to use it as a template, but that's ok because this procedure will work just fine!
Thanks for all the mental stimulation to get me this far... and please tell me if you think there are glaring holes in either the pegboard or dado based procedures.