Load multiple text files with same name but in different folders
You are right to question your current approach.  With 9 sets of data with 5 repeats of each, you would need 45 variables with your current approach.  Using a list or dictionary for one dimension would reduce you to only 5 or 9 variables depending on which dimension became the list/dictionary.  Use a list/dictionary of lists/dictionaries could reduce the required variables to 1.

Using '/long/path/'+var1+'suffix/'+var2+'/filename.ext' is hard to read.  First, the PEP8 standard requires spaces around the + operators (as well as other places, such as after commas).  Using a .format() statement can make the string manipulation a bit clearer, and allow configuration to be move out of functions to a global scope, making changes easier.

Whether you want lists or dictionaries for the data, whether you want to store the individual msd[temperature][repeat] for later use or whether you just need to read the data in to compute the mean &amp; standard deviation and can then discard the data, and so on is unclear.  Here (untested) is a rough reworking of your code to allow you to extend the temperatures and repeats as required; adapt as necessary.  The msd variable is a dictionary of lists, so the variable msd323_5 has become msd[323][4].

import numpy as np 
import matplotlib.pyplot as plt


# Configuration

FILENAME = '/home/aperego/data/HexaPaper/nvt/{}K/{}/Average_MSD.txt'
REPEATS = ('1st', '2nd', '3rd', '4th', '5th')
TEMPERATURES = (303, 313, 323)


# Read data

def load(temp, pos):
    return np.loadtxt(FILENAME.format(temp, pos), usecols=[1])

steps = np.loadtxt(FILENAME.format(TEMPERATURES[0], REPEATS[0]), usecols=[0])

msd = {}
msd_mean = {}
msd_std = {}

for temperature in TEMPERATURES:

    repeats = []

    for repeat in REPEATS:

        sample = load(temperature, repeat)
        repeats.append(sample)

    data = np.vstack(repeats).T

    msd[temperature] = data
    msd_mean[temperature] = np.mean(data, axis=1)
    msd_std[temperature] = np.std(data, axis=1)


# Plot the data

plt.yscale("log")
plt.xscale("log")

for temperature in TEMPERATURES:
    plt.plot(steps, msd_mean[temperature], label="{}K".format(temperature))

plt.legend(loc="best")
plt.show()