Now, I can't find a sensible way of making find(1) do this; if I'm reading the manual right, there's no way of saying "find all files whose atime is in August 2003" without doing all sorts of horrible mojo regarding working out many seconds ago were the first and last days of August.
This leads me two a
On the one hand, I could use Perl and File::Find to get a file, look up its month with stat() and move it to the appropriate directory that way.
On the other hand, I could use Perl to list all the files long-stylee, and then process them on the basis of a regexp match.
On the gripping hand, I could brew some unpleasant shell to do this.
On the tentacle, I can't find a pre-canned solution to this but that doesn't mean there isn't one; searching anything for "sorting files" predictably drowns me in references to bogosort(1) and sort(1) and things related.