What you could do is specify the model with lme and then use glht from the multcomp package to do what you want. However, lme gives slightly different F-values than a standard ANOVA (see also my recent questions here).
lme_velocity = lme(Velocity ~ Material, data=scrd, random = ~1|Subject)
anova(aov_velocity)
require(multcomp)
summary(glht(lme_velocity, linfct=mcp(Material = "Tukey")), test = adjusted(type = "bonferroni"))
For other contrasts then bonferroni, see e.g., the book on multcomp from the authors of the package.
You may also want to see this post on the R-mailing list, and this blog post for specifying a repeated measures ANOVA in R.
However, as shown in this question from me I am not sure if this approachs is identical to an ANOVA. Furthermore, glht only reports z-values instead of the usual t or F values. This seems to be uncommon, too.
So far, I haven't encountered another way of doing this.