As of the census of 2000, there were 21,609 people, 7,314 households, and 5,229 families residing in the county. The population density was 29 people per square mile (11/km²). There were 8,439 housing units at an average density of 11 per square mile (4/km²). The racial makeup of the county was 20.47% White, 78.66% Black or African American, 0.12% Native American, 0.15% Asian, 0.07% from other races, and 0.52% from two or more races. 0.90% of the population were Hispanic or Latino of any race.
There were 7,314 households out of which 36.00% had children under the age of 18 living with them, 34.90% were married couples living together, 31.20% had a female householder with no husband present, and 28.50% were non-families. 26.30% of all households were made up of individuals and 12.10% had someone living alone who was 65 years of age or older. The average household size was 2.86 and the average family size was 3.48.
In the county the population was spread out with 32.10% under the age of 18, 12.40% from 18 to 24, 24.80% from 25 to 44, 18.30% from 45 to 64, and 12.40% who were 65 years of age or older. The median age was 30 years. For every 100 females there were 87.30 males. For every 100 females age 18 and over, there were 79.30 males.
The median income for a household in the county was $17,235, and the median income for a family was $21,757. Males had a median income of $23,720 versus $17,883 for females. The per capita income for the county was $10,683. About 35.90% of families and 41.10% of the population were below the poverty line, including 52.30% of those under age 18 and 36.40% of those age 65 or over.
Holmes County has the third lowest per capita income in Mississippi and the 41st lowest in the United States.