Or is this something that has just come up recently?
If he's always had sleep problems then I might suggest it has been the way you've trained him (I know, taking responsibility instead of dishing out blame!).
If it's something that has only come up recently, then I might suggest that something has changed and you need to figure out what that is.
Just my two cents.