He could buy -- Он мог купить
He could have bought -- Он бы мог купить (но не купил)
Если брать вот так, без контекста, то по сути никакой -везде отношения к прошлому времени, в первых двух случаях это предположение, в третьем случае можно расценивать как предположение, а можно как возможность совершить действие. Причем третий вариант может быть отнесен и к настоящему времени- "Он мог бы купить это сейчас" тогда это будет так называемый Презент Сабджанктив Муд.
He could have bought it -> could indicates possibility in the past;
He might have bought it -> might indicates less possibility than could;
He might buy it -> might indicates an uncertain future action.
He could have bought it - он мог (у него была возможность) купить это.
Нe might have bought it - тут речь о желательности или другой нефизической (и нематериальной) возможности. Типа, "лучше б ему это было купить", или "с тем же успехом он мог купить и вот это", или "ну он же там был, мог и купить заодно"...