Оба варианта верны. Разница между ними в том, что родительный падеж передает значение «частичный охват предмета действием», поэтому вариант купил молока будет означать, что молока куплено немного. У винительного падежа (купил молоко) такого оттенка значения нет.