You can override Column.MakeEditorReadOnly to 'lock' inplace editor:
[c#]
public ColumnWithNonEditableDropdown : Column
{
  public ColumnWithNonEditableDropdown() : base(){}
  public ColumnWithNonEditableDropdown(string name) : base(name){}  
  public ColumnWithNonEditableDropdown(string name, string fieldName) : base(name, fieldName){}
  
  private bool dropdownNonEditable = true;
  
  [DefaultValue(true)] 
  public bool DropdownNonEditable
  {
    get
    {
        return dropdownNonEditable;
    }
    set
    {
      dropdownNonEditable = value;
    }
  }
  
  public override bool MakeEditorReadOnly(NodeBase node)
  {
    return (EditorStyle == EditorStyle.DropDown || EditorStyle == EditorStyle.DropDownResizable) ? 
    dropdownNonEditable : 
    base.MakeEditorReadOnly(node);
  }
}