Mac OSX does not support the tac command. The solution by @tcdyl works when you are calling a single command in a for loop. For all other cases, the following is the simplest way to get around it.
This approach does not support having newlines in your filenames. The underlying reason is, that tail -r sorts its input as delimited by newlines.
for i in `ls -1 [filename pattern] | tail -r`; do [commands here]; done
However, there is a way to get around the newline limitation. If you know your filenames do not contain a certain character (say, '='), then you can use tr to replace all newlines to become this character, and then do the sorting. The result would look as follows:
for i in `find [directory] -name '[filename]' -print0 | tr '\n' '=' | tr '\0' '\n'
| tail -r | tr '\n' '\0' | tr '=' '\n' | xargs -0`; do [commands]; done
Note: depending on your version of tr, it might not support '\0' as a character. This can usually be worked around by changing the locale to C (but I don't remember how exactly, since after fixing it once it now works on my computer). If you get an error message, and you cannot find the workaround, then please post it as a comment, so I can help you troubleshoot it.