The GPIO pins can be on or off or tell you the pin is one or zero.
In order for you get information that the letter "A" from a particular pin has arrived you would get a series of ons and offs, say one 1 and two zeros within say a second. You would then conclude that you have within one second received "A" in morse code.
So you have to establish a protocol that at the Raspberry end you should expect letter info in more in one second. The sending end should also know all that.
Futhermore you should establish some sort of "end-of-transmission" and "hand-shake" procotols etc.
Also like the other guy says you would have to read info in a very tight loop or Linux/Windows/whatever may stop reading momentarily (allthough data keeps coming) to conduct some other stuff, like adjust clock etc. Then you would loose some data unless it was save on some stack.
So the easy answer is no. Just too much work, but it can be done.
The UART pin in the other hand does this automatically. It uses extra circuitry and logic + uses pre-established protocols and buffers and whatnot so that you can perform a c-code "read" to read a "character" and not just voltage highs and lows.
Caveat: I am not an electrician - I write code and above is my take on the subject.