First, I can't remember if you've told us or not, how old is he?
An attention span is something that has to be developed. You start out with very short sessions, three to five minutes, and work your way up. Some dogs will eventually pay attention for quite a long period of time if you're doing something that's really interesting to that particular dog.
That's another point. Just like us, they find certain things more interesting than others, and some days they're more attentive than others. Don't ever let your dog decide how long the session is. Make him do one more repetition before you quit, and always make him perform one behavior successfully before the session's over, even if it's just something as simple as "Sit."
Remember, you've got to be the boss.