По-моему, хамство - это оскорбления. Они могут быть завуалированными, носить внешне вежливую форму, но их цель всегда в том, чтобы уколоть, унизить собеседника, высмеять его и т.п. В общем, хамство - это такой способ ведения разговора, когда преднамеренно ранят достоинство человека.
А грубость - это, как мне кажется, просто употребление резких слов. По-моему, люди чаще всего грубят из соображений самозащиты, когда хотят от кого-то отвязаться. Либо же, когда им нужно кого-то к чему-то принудить, а они думают, что уговорами не получится.
Грубят, в общем, со злости, в раздражении, даже от отчаяния, когда не знают, как еще поступить. А хамят с издевочкой, чтобы насладиться своим остроумием.
Некоторые люди вообще не осознают, что разговаривают грубо, поскольку сами они не вкладывают в свою речь обидный смысл. А вот те, кто хамит - мне кажется, всегда прекрасно понимают, что преднамеренно оскорбляют, но только не признаются в этом.