I came across this sentence:
You have done that you should be sorry for.
Is this grammatically correct?
It was grammatical for Shakespeare. And it is only by choice that it is not something we say today.
1 You have done that you should be sorry for.
What is this? Well, it is a sentence with the relative pronoun dropped. If we replace the relative pronoun, we get either:
2 You have done that that you should be sorry for.
(The first that is a demonstrative pronoun: 'You have done that.' The second that is a relative pronoun.)
or
3 You have done that which you should be sorry for.
Are 2 & 3 grammatical today? Yes, although we really don't like two thats coming in a row, so we might prefer Sentence 3.
Perhaps Shakespeare didn't like two thats in a row, either. All he did was drop the relative pronoun. It is something we still do in some constructions, but it sounds a bit weird in this particular sentence construction. So it is not really grammatical for us, but that is only because we say it is not. Which is all 'grammatical' means: if it is something we say, it's grammatical.
Note you can switch the word order and come up with all the following:
4 You should be sorry for that which you have done.
5 You should be sorry for that that you have done.
Grammatical? Yes. Sounds a bit weird? Probably.
6 You should be sorry for what you have done.
Grammatical? Yes.
7 You should be sorry for that you have done.
Grammatical? Well, it's beginning to sound grammatical... Some native speakers might say yes.
Another example from Julius Caesar:
8 Now follows that you know, young Fortinbras,...
Again, Shakespeare has simply dropped the relative pronoun that:
9 Now follows that that you know, young Fortinbras,...
This one sounds okay to me, but again it becomes clearer if we use the relative pronoun which instead.
10 Now follows that which you know, young Fortinbras,...
Here are a lot more examples of Shakespeare dropping the relative pronoun, in many places (that) we don't do so today.