I am late but for other beginners like myself I’ll try to answer this.
Let’s see each component individually:

Embedding matrix: The dimension of embedded is (seq_len, batch, embedding_dim). Important thing to note in this tutorial is that we are passing input one at a time to network i.e input will be “he” then “is” then “painting” so on rather than “he is painting” in one go. This means seq_len will always be 1. So embedded will be of shape (1, batch, embedding_dim) and hence embedded[0] will be of shape (batch, embedding_dim).
Hidden weights: the dimension of hidden is  (num_layers * num_directions, batch, hidden_size). For this tutorial num_layers=1 and num_directions=1  so the dimension becomes (1 * 1, batch, hidden_size). So hidden[0] becomes (batch, hidden_size)


From above to if we concatenate embedded[0] (batch, embedding_dim) and hidden[0] (batch, hidden_size) along dim=1 we safely get tensor of size (batch, hidden_size + embedding_dim) for each time step of the input.
Hopefully it Helps!