Try cutting a square and then checking the diagonals. a perfect square would have identical diagonals. also measure across oppostite faces. If the across the opposite faces you get the same dimensions, your are cutting a parallelagram and it is not the mach3 program or g-code, it would be that the x and y are not exactly 90 degrees from each other. Cut the largest square that you can comfortably measure, errors are easier to detect with a bigger object.
even if you could fix this in software, which I doubt, the machine should be set as close as possible to perfect, this way the software can worry about the cutting and not have to do other things at the same time.
Warning: DIY CNC may cause extreme hair loss due to you pulling your hair out.