I haven't tried this yet, but am facing the same problem.
I'll probably use concrete nails as a hole punches once the centers are located. I may combine this with the suggestion of making a hole template, but accurately drive the concrete nails into the wood so they align to the exact center of a pair of slots.
In my case, since this involves a drainage pipe, I'll place the template with the correctly placed concrete nails on the slab that underlies a brick surface and an aligned curb. (I hope you can visualize this.)
What needs to be mounted is a pipe support of sheet metal. I can,in my case, use clamps to secure the template to the curb and the slab underneath. when all is in place I'll gently hit the nails further into the wood template, thus striking the slab.
Of course the wood template can be any size, dependent on the needs of the project. A level can be run across the heads of the nails in the template for correct horizontal placement when secured to the curb with clamps. In my case a slight down angle for drainage is required. For others double sided tape could be used for accurate placement of the template.
I'll achieve required placement since the adapter in the brick curb will be held in place with GE Silicone II. At this point it is not hot glued to the rest of the pipe, which can be positioned correctly for drainage. Lines drawn through the centerlines of the concrete nails will be used to make additional sight holes to another set of lines on the sheet metal pipe support so the punch marks made by the nails will be in the exact center of the slots. The slots will allow 3/8" of angular slope between the slots in either direction. Thus will also have another allowance for accuracy of threaded rods epoxied into the holes which will be oversized allowing an additional amount of accurate positioning until the epoxy sets.
It sounds complicated, but so is being a little bit off center.