Why does Hamlet alone see the Ghost in Act Three and not Gertrude who is in the same room? I've been thinking about this since class and I have another idea. Perhaps the Ghost appears in Act Three not as an actual spirit, but as a projection of Hamlet's conscience.
Ever since Hamlet discovered the cause of the late Hamlet's death, and came to acquire the charge for revenge from the ghost, he has been conflicted. He wants to kill Claudius but when the opportune moment presents itself he refrains from doing so. This had to make him feel guilty, and once again like coward hiding behind his words. So in order to get rid of some of this guilt he begins to berate Gertrude in her chambers. But Hamlet is not an evil character, he is a young man who is in turmoil over what life has handed him. When he realizes the effect his sharp words are having on his mother, indeed cutting her to the core, I think he begins to feel guilty. But since he is so passionate he can't just apologize. So his conscience brings forth an excuse to restrain himself, something that had morally led him before, the ghost of his departed father. The ghost tells him that
This visitation
Is but to whet thy almost blunted purpose.
But look, amazement on thy mother sits.
O, step between her and her fighting soul
By projecting the ghost from his mind, Hamlet finds a reason to reel back his attack without once again appearing to be a coward. Since the ghost is in fact in his head this time, Gertrude is unable to see it.
Again this is just another thought that I had. There are of course also the possibilities that the Ghost chooses to appear to certain people, Gertrude's feelings of guilt prevent her from seeing the Ghost and of course, the idea that Hamlet has finally completely snapped and is simply hallucinating for no apparent reason.
We will never know why, unless of course Shakespeare's ghost is kind enough to appear and tell us...