You can do it using both dupliverts or particle system, but you have to prepare the mesh properly first.
Add an UV Sphere with default settings (I use these in this example) and delete the bottom half of it. Select the very first top edge loop, press Shift+S-->Cursor to Selected, then add a circle and set its vertices count to 6. Enable vertex snapping tool (magnet icon) and snap it to the default edge loop. Do the same with the lower edge loops, but this time add the circle with 6 more vertices. Delete the default loops with X.
Repeat the process until you get to the sixth edge loop (It should be 32-vertices default loop). Every lower edge loop should get 6 more vertices- I know it's a silly work but I don't know how to script ;P. Add a cube in the middle of the sphere.
In Object Mode select the cube, then the sphere, press Ctrl+P-->Set Parent To-->Object.
Select the half of the sphere and give it the Mirror modifier (Z axis).
Finally with the sphere selected go to the Object Data header (Duplication panel), select the Verts window and check the Rotation checkbox.