I would favor custom drawing over owner drawn list controls, since you only have to draw the part you're interested in, and let the control draw the rest.
In your case, all you have to do is set a color at the right place.
void CMyListCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR);
switch (pNMCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;
case (CDDS_ITEMPREPAINT | CDDS_SUBITEM):
if (HasDifferentColor(pNMCD->iItem))
pNMCD->clrTextBk = m_clrDifferent;
break;
...
Edit: Corrected the last case constant