Macduff is certainly the hero. The only reason Shakespeare gave Banquo any redeeming qualities is that James I was a descendent of Banquo. In fact it is likely that Banquo was involved with the plot to kill Duncan in reality, but Shakespeare was ever the diplomat.
I completely agree with the previous posts. There is no real way to make Banquo into the hero of the play. He really does not do anything to stop Macbeth from turning to evil. He thinks that Macbeth shouldn't be listening to the witches, but he doesn't really try that hard to change his mind. Some people even think he knew Macbeth was going to kill Duncan and didn't stop him. Not much heroic there.
Macduff is the hero. In the end, he beheads Macbeth and justice is served. No doubt, Macduff is a hero when he gets rid of Macbeth and all his evil doings. Of course, Macduff lost everything, his wife and children. The fact that he could fight after losing his family makes him heroic. He continued in the face of devastation. He fought for his country's safety from Macbeth. He is a true hero.
Macduff is the one who eventually succeeds in killing Macbeth. Banquo doesn't really accomplish much. When Macduff kills Macbeth, he ends the terror and insanity and brings stability to the kingdom, allowing Malcolm to return as king and bring things back to normal.