A single update is generally limited to 8 fields, plus locaton and status information. There are a few ways to achieve the effect you are looking for. If the devices have a synchronized clock, you can write the time along with the submission using the created-at parameter. Then each device could write the same timestamp even though the actual posting to ThingSpeak times might vary.
See the write data page in the documentation for more information. If the frequency of writing is slow, you could use the retime function in MATLAB to realign the times after they are posted. You could forward data from all the devices to have a single device perform the write operation. If you wanted to write multiple entries in a single POST, you could use the bulk write ferature, but each entry needs to have a unique timestamp.
There is presently no difference in the number of fields you can write to simultaneously in the commercial or free version, but the number of allowed writes and the maximum frequency of writes are larger with a paid license.
If you absolutely need to write all 18 sensor values, it is possible to encode and then decode them. Our suggested workflow is to use one device per channel, and one field per sensor. Each field is up to 255 characters though, and you can pack more information in there if wou are willing to unpack it and create a custom plot later.