Why does Hamlet criticize himself for his inaction on young Fortinbras' passing through Denmark on his way to fight Poland ?
This is one of the best parts in the play. Hamlet really beats himself up here because Fortinbras, and all of his men, are willing to die for the sake of honor, "even for an eggshell" (4.4.43). In contrast, he seems unable to get on task with his father's revenge, having spent too much time thinking about it, a course which seems "one part wisdom and ever three parts coward" (4.4.32-33). This especially torments him because he loved and respected his father so much, that the willingness of these men to die over a piece of land so small that it wouldn't hold all their graves highlights his own cowardice. Great example of foil characterization.
Hamlet suffers from an overwhelming tendency towards inaction. It is the internal conflict that plagues his thoughts throughout the story, and ultimately leads to death of so many, himself included. Had he challenged Fortinbras on his passage through Denmark, much might have changed.