Is there a word or phrase that describes someone who claims to have known something all along, but only proclaim this after the incident has occurred?
You can call this person a day late and a dollar short.
This is different from hindsight, which is the ability to describe things in the past and only bring them up in the future.
A person who is a day late and a dollar short may certainly have been aware of some important fact prior to or during the time when sharing that information would be helpful. But the fact that the person doesn't share makes their offering the information after the fact essentially useless.
A person with hindsight (or someone who is a Monday morning quarterback) doesn't necessarily know anything useful when it matters. That person is only able to pretend to be knowledgeable and aware afterwards.
A more literal, less idiomatic phrase might be too little, too late.
Here is an example of a day late and a dollar short in use:
I knew you would get stuck on the sand bar at low tide when you told me you were arriving this afternoon.
Well, as usual, you are a day late and a dollar short. It would have helped a lot if you had told us that when we were talking to you this morning.
Using a sports pun that person would be a "Monday Morning Quarterback".
(I knew it the whole time.)
An adjectival is the ironic to sarcastic 'gifted with hindsight'.
'Hindsight's a wonderful thing' is perhaps used more to show a person in a not-too-blunt way that they're being wise after the event.
It's less specific than you describe (as are most of the suggestions here), but the term "Texas Sharpshooter" applies. It refers to someone who waits until the results are in, and then claims that whatever result you got was the one that proves them right. The term comes from the Texas Sharpshooter Fallacy, which in turn is named after an old joke about a Texan who fires a shot at the blank wall of a barn, then paints a target around where the shot hit and claims to be a sharpshooter.
I have four suggestions, please take your pick.
A person who claims to have known all along that an event or deed would occur, but only informs you after the event is what I would call simply, a liar. Maybe you prefer a more simpatico term, then choose fibber which sounds less harsh.
There is no proof of previous knowledge. Can this type of person provide evidence to back up his statement, more often than not these types fail spectacularly on this account. You could also suggest that he or she is a know-it-all, if the person claims to have had previous knowledge that would have lead to the natural sequence of events.
A know-it-all or know-all is a person who obnoxiously purports an expansive comprehension of a topic and/or situation when in reality, his/her comprehension is inaccurate or limited. This display may or may not be directly expressed
If for instance the person declares they always knew the answer to a solution or a problem then
Expert ex post facto fits perfectly. There are a few users, not many just a few, on ELU who could contend for this award.
In Psychology, they call this the Hindsight Bias.
A postnosticator, rather than a prognosticator?
"Hindsight is 20/20" is used when the second party may or may not believe the first party.
I like Liesmith's "postgnosticator". On the same lines I suggest "retrodictor" as opposed to "predictor".
'Besserwisser' is a good name/word, which is borrowed from German, and is recognized in almost all of the European languages. In plain English, it would be ‘wiseguy’ or slang word ‘smartass’.
I often hear people make that claim when playing blackjack or poker. Otherwise they should have played differently. Such a person is a BS'er...bullshitter.
I work with a person like this and we all refer to him as our resident "Sexual Intellectual" aka "Fu@#ing Know It All"
Just another suggestion, note that this pertains mainly to witty remarks (e.g. comebacks) that are thought of too late.