How can I improve my regression model?
I have a similar dataset atm and have been doing some research, not yet finished.

What needs to be kept in mind is the need for generalization given that there is such few samples and many dimensions.

The linear regression model is not robust enough given the dataset, it does not handle a high number of dimensions, compared to samples, well. Even if you could tune in order to get a good result, you are still probably overfitting.

Stepwise feature/model selectors such as Cp-statistics does not seem to do well with so many dimensions vs samples.

Ridge, Lasso, and Elastic net seems to be the way to go for feature selection. These penalized linear regression models handles the high number of dimensions vs samples much better. The linear regression is penalized in order to generalize better and not overfit, creating a less complex solution. 
R: GLMNET - Penalized regression
Depending on alpha, you may receive a different feature set, coefficient that are not zero. E.g Lasso is biased for not returning features that are very correlated with each other while ridge might return a set of variables/dimensions/predictors/features that are correlated with each other.

K-Fold Cross-validation could be used in order to check the features selected are selected over and over again. This could be used in order to make sure that you don't overfit.

I hope this gives you a few ideas.