That was in season 5. First non-code intentional kill I recall was in season 3 against a
phile who was targeting Astor. Dexter wasn't going to kill him at first, he gave him a warning, but then the guy didn't really get the message, so Dexter killed him.
Dexter also killed Oscar Prado in season 3. Technically, it was his first non-code kill, but it was more in self-defense. Oscar was attacking a guy who Dexter was going after, and when Dexter walked in on it, Oscar turned on Dexter, forcing Dexter to kill him. Dexter also mercy-killed one of his dad's old friends in season 3, but not really worth counting.
During season 4, Dexter killed an innocent man named John Farrow. Dexter mistakenly thought he was a rapist and serial killer.
In season 5, in addition to the asshole in the bathroom, Dexter also killed corrupt cop Liddy, who was a pain in the ass and a threat to Dexter's freedom, but not up to code.
In season 7, Dexter kills Hannah's dad who's an asshole and a threat to Hannah's freedom, but not a code kill. Also that season, Dexter was going to kill LaGuerta but Deb does it instead. He's responsible for her death.
In season 8, Dexter kills Deb's lowlife boyfriend/investigation target. He also kills Deb, but it's a mercy kill.