Without looking it up in a dictionary, I am not aware of any difference. I assume that serf comes from Old English and villein comes from Old French, but both refer to the same thing: a person on the lowest level of a feudal society, who is forced to farm land owned by a rich person, and is almost like the “property” of the rich person.