Perl 5, 158159
@c=(@b=(++$n,bottle.'s'x@-,of,beer),on,the,wall),s//Take one down and pass it around, @c.
@c, @b.
/,until/99\D+/;say$'."Go to the store and buy some more, $&"
Based on the solution from eyepopslikeamosquito found here.
Requires the free -M5.010 switch to use "say".*