You might try playing... shorter time controls. It helps to be able to form a quick, rough judgment when you need to, although playing too many short games can get you in the habit of playing atrocious moves that won't go unpunished in long play. But being able to make a move because it feels right, when you have no time to calculate, is a useful skill that you won't lose.
Studying, of course, will also help. If you are spending time thinking in the endgame that is probably the best place to improve rapidly, but it sounds like it is the middle-game that takes away most of your time. Studying is not as effective here, since there are so many possible positions- just play and play and play and you'll get better.
It seems that the clock is my worst enemy, especially now that I'm playing against people of equal or higher strength. If I don't spend enough time in the opening and middlegame to make strong moves, then I end up losing. If I spend too much time then even if I'm up in the endgame I'll lose on time as long as the opponent can defend long enough.
Any tips on how to get faster? Is speed in analyzing positions just something that comes with time in games? Or should I be spending more time studying positions in preparation for games? Any tips greatly appreciated!