I want the whole body to have a dotted grid
The following solution works, but only for a fixed background-size. See @Temani Afif's answer for a better solution.
You can use the background-position CSS property to do exactly what you were thinking.
body {
background: white;
background-image: radial-gradient(black 1px, transparent 0);
background-size: 40px 40px;
background-position: -19px -19px;
}