You can handle the grid.CurrentCellShowingDropDown event and cancel it if the currentcell is readonly.
private void gridControl1_CurrentCellShowingDropDown(object sender, GridCurrentCellShowingDropDownEventArgs e)
{
GridCurrentCell cc = this.gridControl1.CurrentCell;
if(this.gridControl1[cc.RowIndex, cc.ColIndex].ReadOnly)
e.Cancel = true;
}