Here's a hacked up example of adding autocompletion to a grid... it's not very clean, but it should be a decent starting point. I basically hacked up the TextEditor for a few hours to get it to work, the only problems I've noticed so far are the edit box ends up not being sized perfectly and the AutoComplete widget grabs the up and down arrow keys so they no longer navigate the grid:

<style>
div.autocompletediv ul {padding:5px 0;width:100%;}
div.autocompletediv ul li {background:"white";padding:0 5px;cursor:default;white-space:nowrap;width:100%;}
div.autocompletediv ul li.yui-ac-prehighlight {background:#FFFFCC;}
div.autocompletediv ul li.yui-ac-highlight {background:#ff0;padding:0 5px;cursor:default;white-space:nowrap;width:100%;}
</style>

Code:
var myArray1 = ["hello", "hi", "howareya"]; 
var fieldDataSource = new YAHOO.widget.DS_JSArray(myArray1); 

YAHOO.ext.grid.AutocompleteEditor = function(config){
    var element = document.createElement('input');
    element.type = 'text';
    element.className = 'ygrid-editor ygrid-text-editor';

    // turn off brower based autocompletion.
    element.setAttribute('autocomplete', 'off');
    //document.body.appendChild(element);
    
    var myContainer = document.createElement('div');
    myContainer.className = "autocompletediv";
    myContainer.style.backgroundColor = "white";
    myContainer.style.position = "absolute";
    myContainer.style.top = "1.7em";
    myContainer.style.width = "100%";
    //document.body.appendChild(myContainer);
    
    var containingElement = document.createElement('div');
    containingElement.appendChild(element);
    containingElement.appendChild(myContainer);
    document.body.appendChild(containingElement);
    
    var myAutoComp = new YAHOO.widget.AutoComplete(element,myContainer, fieldDataSource); 
    myAutoComp.forceSelection = true; 
    myAutoComp.queryDelay = .2;
    myAutoComp.prehighlightClassName = "yui-ac-prehighlight"; 
    myAutoComp.typeAhead = true; 
    this.AutoComp = myAutoComp;
    //YAHOO.ext.grid.AutocompleteEditor.superclass.constructor.call(this, containingElement);
    
    this.colIndex = null;
    this.rowIndex = null;
    this.grid = null;
    this.editing = false;
    this.originalValue = null;
    this.element = getEl(containingElement, true);
    this.completerElement = getEl(myContainer, true);
    this.editElement = getEl(element, true);
    this.editElement.addClass('ygrid-editor');
    this.editElement.dom.tabIndex = 1;
    this.initialized = false;
    this.callback = null;
    
    YAHOO.ext.util.Config.apply(this, config);
};

YAHOO.extendX(YAHOO.ext.grid.AutocompleteEditor, YAHOO.ext.grid.CellEditor);

YAHOO.ext.grid.AutocompleteEditor.prototype.setValue = function(value){
    this.editElement.dom.value = value;
};

YAHOO.ext.grid.AutocompleteEditor.prototype.hide = function(){
    try{
        this.editElement.dom.blur();
    }catch(e){}
    this.editElement.hide();
};

YAHOO.ext.grid.AutocompleteEditor.prototype.validate = function(){
    var dom = this.editElement.dom;
    var value = dom.value;
    if(value.length < 1){ // if it's blank
         if(this.allowBlank){
             dom.title = '';
             this.element.removeClass('ygrid-editor-invalid');
             return true;
         }else{
             dom.title = this.blankText;
             this.element.addClass('ygrid-editor-invalid');
             return false;
         }
    }
    var msg = this.validator(value);
    if(msg !== true){
        dom.title = msg;
        this.element.addClass('ygrid-editor-invalid');
        return false;
    }
    if(this.regex && !this.regex.test(value)){
        dom.title = this.regexText;
        this.element.addClass('ygrid-editor-invalid');
        return false;
    }
    dom.title = '';
    this.element.removeClass('ygrid-editor-invalid');
    return true;
};

YAHOO.ext.grid.AutocompleteEditor.prototype.initEvents = function(){
    YAHOO.ext.grid.AutocompleteEditor.superclass.initEvents.call(this);
    var vtask = new YAHOO.ext.util.DelayedTask(this.validate, this);
    this.editElement.mon('keyup', vtask.delay.createDelegate(vtask, [this.validationDelay]));
};

YAHOO.ext.grid.AutocompleteEditor.prototype.stopEditing = function(focusCell){
  this.AutoComp._onTextboxBlur(this.AutoComp,this.AutoComp)
  YAHOO.ext.grid.AutocompleteEditor.superclass.stopEditing.call(this, focusCell);
};

YAHOO.ext.grid.AutocompleteEditor.prototype.show = function(){
    this.element.dom.title = '';
    //YAHOO.ext.grid.AutocompleteEditor.superclass.show.call(this);
    
    this.editElement.show();
    
    this.editElement.focus();
    if(this.selectOnFocus){
        try{
            this.editElement.dom.select();
        }catch(e){}
    }
    this.validate(this.editElement.dom.value);
};

YAHOO.ext.grid.AutocompleteEditor.prototype.getValue = function(){
   if(!this.validate()){
       return this.originalValue;
   }else{
       return this.editElement.dom.value;
   }   
};

YAHOO.ext.grid.AutocompleteEditor.prototype.allowBlank = false;
YAHOO.ext.grid.AutocompleteEditor.prototype.selectOnFocus = true;
YAHOO.ext.grid.AutocompleteEditor.prototype.blankText = 'This field cannot be blank';
YAHOO.ext.grid.AutocompleteEditor.prototype.validator = function(){return true;};
YAHOO.ext.grid.AutocompleteEditor.prototype.validationDelay = 200;
YAHOO.ext.grid.AutocompleteEditor.prototype.regex = null;
YAHOO.ext.grid.AutocompleteEditor.prototype.regexText = '';