Email works differently to SMS messages. When you receive an SMS message, the number is looked up in your contacts. If the number is found in your contacts then the phone will show the name associated with that contact. So - the names are added by the recipient's device. With emails, the name is added by the sending device.
So, the reason you're not seeing names is because whoever is sending you these messages is using an SMS to EMail gateway. They're sending an SMS message (which, as explained above, doesn't have a name sent with it) to the gateway. The gateway won't know nor care who sent the SMS message, but will send it on (again without any name information) as an email to your email account. Hence, you're not getting any name associated with them.
The obvious solution is to have this person text your phone number rather than your email address. Perhaps they're not doing this for a good reason though.
The last time I checked (which was in Android 1.6) you couldn't read emails from an App (unless the app is an Email replacement app, such as K9). So, there's no way for an app to read your GMails, search for something that looks like a phone number, then look up that number in your contacts.
However, things might have changed with the Android 2.0 API, but I've not heard of any app that can do this.