Game of Thrones season seven is all about the reunions — Sansa and Bran, Tyrion and Jon, Arya and Sansa — but not all reunions are happy ones. In "The Spoils of War," Theon returns to Dragonstone only to find Jon is staying at Daenerys's home base as well. These two men had been raised as brothers, but they've never had a good relationship. They are both outsiders in the Stark family: Jon because he is a bastard, and Theon because he's technically Ned Stark's hostage for most of his life. Even though Ned raises the Greyjoy ward as one of his own children, Theon is being held as collateral to keep his father in line. Despite their differences, Theon and Jon could always agree on their love of Robb, and that's one of the reasons their reunion is so intense. Theon has given Jon plenty of reasons to hate him, but his betrayal of the Stark family is the greatest source of contention between them.
The last time Theon and Jon see each other before the War of the Five Kings breaks out is when Jon is leaving for the Wall. At that point, Theon is left as Robb's greatest ally, but shortly after the war begins, he returns to his home of Pyke for the first time since he was a boy. It's there that Theon makes a terrible mistake that changes the course of his life, and the lives of the Stark children, forever. He chooses to take Winterfell in hopes of winning his father's approval, and in the process he turns his back on Robb, someone he considers a brother.
Shortly after he takes the castle, Theon claims to have murdered Bran and Rickon. We later learn he actually kills two farm boys instead, but the damage is done. Robb and Jon believe their little brothers have been killed, and ultimately, Bran and Rickon have to flee Winterfell. This sets off a chain of events that ultimately leads to Rickon's death, the Boltons taking control of the Starks' home, and Ramsay marrying and raping Sansa. Had Theon remained loyal to Robb and the family that he grew up with, there is an excellent chance that Robb may have won the war. At the very least, Winterfell and the younger Stark boys would have been safe.
The king in the North holds Theon responsible for much of the pain and loss his family has experienced since he left for the Wall. The truth is, Jon blames himself too. From the moment Sam and his other Night's Watch brothers make him turn back for the Wall instead of riding home in season one, Jon makes a choice to keep his oath. And that oath prevents him from helping Robb secure the North or removing Theon from Winterfell.
This complicated mix of emotions all boils over when Jon sees Theon again at Dragonstone. He tells Theon that the only reason he's not killing him is because of what he did for Sansa. Theon regrets ever betraying the Starks more than Jon can know. Since he makes his choice, he goes through hell. Ramsay turns him into Reek with a combination of physical and mental abuse no person should ever have to suffer. The lingering effects of what Ramsay does to Theon still haunt him. He is a broken man, but despite everything, he finds a way to shake Ramsay's control enough to help Sansa flee from the mad man. Without Theon's help, Sansa's escape from Winterfell may never have happened. His act of bravery saves Sansa's life, and even though it can't erase all of the other mistakes Theon makes, it does mean Jon is indebted to him for freeing his sister.
Saving Sansa is a small moment of redemption for Theon, and it's one that leads Jon to spare his life. But the resentment the king in the North feels for Theon Greyjoy is unlikely to ever go away, and no amount of apologies could ever make Jon forgive him for the damage he has done to the Stark family.