Rather than a checking account, would you consider a savings account? Anything with a routing number can be direct deposited into. Then you could get him a "debit" card (one that is NOT backed by Visa or M/C) - these savings account "debit" cards will only work if there is money in the account so no chance of overdrafts. I would also discuss with him your expectations regarding his spending habits in advance, rather than later :)
If you decide against him having his own account, you can add him to your account for the purposes of direct deposit. My 9 yr old is on my account so his SSI can be directly deposited, but the bank statements and everything just come in my name.
Edit** If you do get him his own account, don't forget your name will have to be on it too until he is 18 - which means that overdrafts and the like would affect your credit history.