If you put something like this in a while (there are files that start w/ a) loop, you should get around the issue of too many arguments. (Be sure to set increment=1 before the loop).
in reply to Re^2: Finding and sorting files in massive file directory
in thread Finding and sorting files in massive file directory
mv `ls a* | head -n1000` dir_a.$increment/