It is not because of a number of columns but the actual total size of the fields you are querying. It should not be more than 512 bytes. For RFC communication, the types likes DATA or STANDARD table are not supported. So the RFC_READ_TABLE function module has to convert the data into the generic format and the data is transferred as a series of lines. It is the size of these table lines that matter. The size cannot exceed 512 characters. If the size is greater than 512 characters, the module throws a Rfcabapexception exception with a short dump. The dump can be checked with transaction ST22. In this case, you will need to break the table vertically.
Also, there can be issues if the fields you are querying cannot be converted to character format or the fields have a variable length.