onEventShowCellEditor is nothing really special, it simply calls method showCellEditor. So can you. Instead of setting a listener for the event and pass it straight through to onEventShowCellEditor put your own listener there instead and decide prior to calling showCellEditor:
myDataTable.subscribe('cellClickEvent', function (oArgs) {
if (condition) {
myDataTable.showCellEditor(oArgs.target);
} else {
...whatever
}
});