IMPORTANT EDIT AFTER INSPECTING YOUR PLOTS
Your plots are not showing the same thing… the first one shows the MAE for 1000 epochs and the second one for 100... looking at them, in the first one the MAE is also large for 100 epochs.
A fair comparison is to show the plot for the whole training set for the 1000 epochs
Imagine you want to fit the following function, $sin(x)$, taking olny as training data points inside the red box. With a linear model $f(x)= Wx + b$ you will perform well on the training set and really bad on the validation set (if it comprises points belonging not only to the red box).
You may be experiencing something similar, as Lana has suggested. A small set of training samples are well fitted by your MLP model, but you are not able to find a suitable model for the whole dataset
It won't decrease to zero, no matter how many hidden layers and neurons and activations I add. I tried everything.
It's almost imposible you have tried everything, regarding Deep Learning…. Have you tuned the learning rate, the optimizer, used regularization, droput and so on…?
What does this mean? Why does this happen and how can I fix it? Is it plausible that it's simply not possible to train a model that fits the training data?
It's really difficult to say, moreover taking into account the high dimensionality of your data, can you tell us anything else about it?