Your reproducible example is a little bit too short so I made one allowing to have each group for each decades
So, if you want to represent the boxplot of the height of players per decade you need first to attribute a decade to each players.
You can do it for example by rounding the starting year to the floor decade by doing:
player <- data.frame(name = LETTERS[1:20],
year_start = c(sample(1970:1979,10, replace= TRUE),
sample(1980:1989,10,replace = TRUE)),
height = sample(180:220,20, replace= TRUE),
position = sample(c("P","G","C"),20, replace = TRUE))
player$decade = floor(player$year_start %/% 10) * 10
Now, you can use it to create your boxplot as follow:
library(ggplot2)
ggplot(player, aes(x = as.factor(decade), y = height, fill = position))+
geom_boxplot()

Does it answer your question ?