Yes, it is possible to specify a Range that is a single row. You would want to use xlsread1 from the File Exchange to improve the speed -- though I understand that in R2015b they do something similar natively.
But there is another way:
num = xlsread('TheFileName.xls');
num_by_line = mat2cell(num, ones(1,size(num,1)), size(num,2));
trimmed_lines = cellfun(@(C) C(~fliplr(cumprod(fliplr(isnan(C))))), num_by_line, 'Uniform', 0);
Now trimmed_lines is a cell array of numeric vectors, one entry per row, in which all the trailing NaN have been removed.
A question would be whether you want the same thing to happen to leading NaN.
Note: NaN also occur in the numeric form in places where strings occur. If you have strings that you want to preserve then the code gets more complex. Leading NaN can occur as row headers.