Of course it's seamless, because the places of the dots are strictly periodic and the dots are created without changing the statistics. To tile several dot arrays easily one must only be sure that the edge of the white background is exactly in the halfway between 2 rows and 2 columns.
In case there's no background 2 rows or 2 columns can also overlap because the smaller dot is not visible if there's a bigger dot in the same place. But that affects statistics and can be noticeable, as we'll see.
Making it is easy in Inkscape. You can there tile copies (Edit > Clone > Create tiled clones) of a dot to a regularly spaced array and scale the sizes in the same time. The scaling can be randomized.
Or Inkscape can take the size variations from the brightness of the underlying image. That image can be noise. The feature obviously is added to the tiling function for easy making of halftones, as you may have guessed.
Here's my tiled array with randomized size:
And here's 3 copies of it with overlapping edges:
The seam can be guessed from the different dot size distribution (more big dots). The problem does not occur if the pattern contains an invisible or single color background with proper dimensions i.e. the edges of the background rectangle are in the halfway between rows or columns.
Another way to avoid any traces of seams is to make as big array as needed.