You are right that 'he' might be implied and can be omitted. But your sentence doesn't 'feel' right in English. A better alternative would be to drop 'is' too: "He is ten, but a good student." This sentence stresses the nonsensical contradiction between being ten years old and being a good student, even more.
To add to geneven's comment, they are in the dative case. Where we would say "I am X (years old)" and languages like French or Spanish would say "I have X years", Russian essentially says, "To me are X (years)". Hence why the dative case is used here.
The other "he" is in the nominative case since the second clause of the sentence ("he is a good student") is a simple indicative statement.