How to write efficient javascript/jQuery code involving loops and string concat?
I found out solution to my problem. so basically this is what I learnt 


use filter to reduce the set of similar items instead of explicit if condition
use cached variables i.e. var $this = $(this);
use methods chaining
and if same methods are to be used multiple times, try using it like:

.prop({ disabled: true, title: 'Readonly.' });


instead of call .prop (or any other) multiple times.
try to scope restrict the context of your selector as far as you can, i.e.

jQuery("tr[data-uid='" + v.uid + "'] .k-button", e.sender.wrapper)



so here's my final query:

jQuery(e.sender.dataSource._data).each(function (i, v) {
   if (v.IsReadonly) {
      jQuery("tr[data-uid='" + v.uid + "'] .k-button", e.sender.wrapper)
       .filter(function (i) {
          var $this = jQuery(this);
          return !($this.hasClass('k-grid-edit') || $this.hasClass('k-grid-Desc'));
        })
        .addClass('k-state-disabled')
        .prop({ disabled: true, title: 'Readonly.' });
   }
});


and this query took 267ms - 296ms (for 10 iterations)

-- I hope there can still be something even more faster like getting rid of that parent .each loop