Different types of 800 runners train in different ways. I'm a sophomore who runs the 800 as well, but I'm more endurance-oriented (800/mile type). I go on 8-10 mile long runs during competition season and run 30-35 mpw. On the other hand, I had a teammate who stayed on the track and in the weight room, training more like a sprinter, and he became a 1:56 guy. You might want to talk to your coach about training more to your style and strengths rather than attempting to train like a type of athlete you're not.
However, if you really want to get some more endurance, the best way is to work your paces and distances up gradually. Instead of starting with 40-minute runs at "any real pace," try a few 3- or 4-mile runs at a very manageable, easy pace. It won't be difficult at all, but it will give you a feel for this new type of training. Later, you can start running the workouts a little more like what your coach is telling you to do. Another thing that would help would be to start running XC. You will likely hate it, but it will solve almost all of your endurance problems in the 800.
You asked about mental toughness for runs like these; the fact that you run the 800 at all indicates that you are tough. You can learn to apply that toughness to longer runs. Sometimes when I have that issue I imagine that I'm racing someone right on my heels and that stopping is not an option. It might help to imagine you have roid-raging Mo Farah chasing you with a machete or something :P
Good luck!