hey that is a great idea, I definatly think its possible, you would probably have to create a bunch of heart frames , and hide/show them depending on how much hp you have
Code:
if UnitHealth("player") / UnitHealthMax("player) == .5 then
for i = 1,5 do
getglobal("HeartFrame"..i):Show();
end
end
etc.