Here's another one of those "Cavemen vs Astronaut" questions...
Okay, as far as coming to a decision, regardless of motives, to become a better person, of trying to do the "right thing" almost from the moment that he came to his senses, the answer is, unarguably, Spike.
As far as trying to make himself worthy of his soul, regardless of how he got it, I would have to say that the two are about equal.
As far as the sheer NUMBER of good deeds done willingly and without thought of reward, then possibly Angel has a slight advantage, but it is not as though he had been doing good all these years. By his own admission, (okay, Whistler's) Angel never went out of his way to consciously and of his own accord do anything for anyone, at least not that we ever saw. He was forced to help the submarine crew, and he never really helped the girl in the hotel. The only real good deeds that Angel ever did THAT WE KNOW OF, were on the show, and his motives were pretty much the same as Spike's: to help Buffy.
Who sacrificed the most for their soul? Spike gave his life, as far as he knew at the time, in the hellmouth in "Chosen."
Angel gave his humanity in "I will Remember You." I would call that a draw.
So, who did the most to earn their soul? I think that Spike earns a few more points for willingly seeking his soul, but not enough for a decisive win.
Now, who became the better person because of their soul? I think that Spike did, but I can't point to any single moment or act to back up that opinion.
So, my vote is "C" Both or neither.