This is actaully difficult to do, and only way I know how is in illustrator. The problem is this pattern need to be symetrical,but the size of the dots changes over a symetrical sizes difference. So you cannot just offset, then use the rubber stamp tool. You may be able to get something better than this using that method though.
You will need to be expereinced in illustrator to try this.
You can substitue all my numbers below by a percentage after you do this once, to get the concpet of how this works.
1) In Illustrator create a 10″ x 10″ square to the size of your pattern repeat
2)Draw a .5″ circle and snap the circle center to corner point of the square.
3)Step and repeat 10 copies of the circle every 1″ horiozontally
4) then steps adn repeate all the cirlces 1″ vertically 10x to fill teh square
5)Select only teh cirlces adn stepo adn repeat all .5″ ho & .5″ vertically
6)Choose any circle that will beyour smallest size in your top row and tranform it in place so the center does nto move
7)delete all the cicles between
8) make a blend between your largest circle and the smallerst one (enter appropriatte specified steps, and specified distance of 1″)
The rest you can figure out if you are an illustrator user(eg: hwo to make a pattern in illustrator, whcih i explained in posts in the past), if you are not, than this may not be possible for you adn too ong of a post for me to type out. Hope this helps. If you are an illustrator guru, the transform each commadn can be another method for doing this along with creating a keyboard command for lets say scale 90%. Then you can quickly select each cicle you originally drew and just spam the keyboard command to knock this job out.