It's likely that Thomas was a nickname rather than his given name. Parents of twins would not name one of them "Twin". Yet by translating "Thomas" to "Didymus" three times, the Gospel of John makes it clear that as an adult Thomas was known—even among Greek speakers—as "the twin".
We don't know exactly where or why he got this nickname, or what his given name was. The apocryphal Acts of Thomas, written in the early third century, identifies him as "Judas Thomas", and fourth century historian Eusebius refers to him once as "Judas, who was also called Thomas".
The gnostic scolls found at Nag Hammadi include a text called The Book of Thomas the Contender, (most likely dating to the late second or early third century) which claims to record "the secret words that the savior spoke to Judas Thomas," and includes this statement:
Now, since it has been said that you are my twin and true companion, examine yourself, and learn who you are, in what way you exist, and how you will come to be. Since you will be called my brother, it is not fitting that you be ignorant of yourself.
A few scholars have understood this to mean that Thomas and Jesus were very similar in appearance. Some have gone so far as to suggest that Thomas is the brother of Jesus and the author of the book of Jude. The majority, however, believe this text is using "brother" and "twin" metaphorically.
At any rate, all of these texts are too late to be considered primary sources.
Most of the early Christians offered no suggestions or speculations about who Thomas' twin might have been. When they mentioned Thomas at all, it was only in passing.
Second century apologist Justin Martyr gives the earliest extra-biblical mention of Thomas that I have been able to find. While discussing the numerological system of a gnostic sect known as the Marcosians, Justin says:
and the ten apostles to whom the Lord appeared after His resurrection,—Thomas being absent,—represented, according to them, the invisible Decad.
Third century apologist Tertullian, arguing against the docetic teachings of Marcion, says:
Now, not even to His apostles was His nature ever a matter of deception. He was truly both seen and heard upon the mount; true and real was the draught of that wine at the marriage of (Cana in) Galilee; true and real also was the touch of the then believing Thomas.
The fact that Thomas was called the twin seems not to have been important to the early Christians. John Chrysostom, for example, composed nearly 90 homilies on the Gospel of John, but never mentioned Thomas being called the twin.
We simply do not have enough information to answer this question. Pope Benedict, in a reflection on Thomas in 2006, mentioned the etymology of the name but added, "The reason for this nickname is unclear."
One recent speculation is that Thomas' name was not actually derived from the Aramaic word for twin, but sounded enough like it that it became a nickname.
Judea had long been part of the Seleucid Empire, and a very common Macedonian name was Ptolemy, which, in Aramaic, was rendered as Talmai or Talmais. That might explain why he was also known as Judas , which basically identified him as Judean; because there was a desire to make it clear that he was of Judaic rather than Greek descent. Note that Bartholomew, the name of the Apostle who may have traveled to India with Thomas after Jesus' crucifixion, is believed to derive from bar Talmai, meaning "son of Ptolemy".
This explanation depends on the later texts that identify him as Judas Thomas, so it has not won much support.
At least one minister has suggested that in his doubts, Thomas is the twin of all of us.
So, back to the question, who is Thomas’ twin? Could be me, could be you. Could be each of us and all of us together, as we summon the courage to doubt our doubts, as we read and study the gospel seeking answers to questions. Could be each of us and all of us together when we join the confession of faith: “My Lord and my God.”