Getting the result of how many times each ID appears in the ManagerID column is easy. Making that a new column in the original data frame is a little clunky because the counts of zero appear as NA after the left_join. It may be that the data frame DF2 is all you need or it may be there is a more elegant solution.
suppressPackageStartupMessages(library(dplyr))
DF <- data.frame(EmployeeID = c("80001", "81928", "76524", "54629", "14973"),
ManagerID = c(NA, "54629", "54629", "80001", "81928"))
DF2 <- DF %>% group_by(ManagerID) %>% summarize(ManagerCount = n())
DF <- left_join(DF, DF2, by = c("EmployeeID" = "ManagerID")) %>%
mutate(ManagerCount = ifelse(is.na(ManagerCount), 0, ManagerCount))
#> Warning: Column `EmployeeID`/`ManagerID` joining factors with different
#> levels, coercing to character vector
DF
#> EmployeeID ManagerID ManagerCount
#> 1 80001 <NA> 1
#> 2 81928 54629 1
#> 3 76524 54629 0
#> 4 54629 80001 2
#> 5 14973 81928 0
Created on 2019-09-20 by the reprex package (v0.2.1)