This is an argument in favor of using a tool like Webform-CiviCRM integration (on Drupal) or Caldera Form CiviCRM integration (on WordPress). The CMS-based form builder has additional layout flexibility, and both allow you to place fields side-by-side.
If you don't want to use those tools, you can use CSS rules to place the fields side-by-side.
Not a naive question at all - I am a seasoned Civi user and I had to double check to make sure what I'm about to tell you is correct - without customization, there is no way to offer free text fields in multiples per row within the same profile. Radio and Checkbox type custom fields will allow you to dictate how many options should appear per row, but each field will still be listed on its own row. It looks like the data you are collecting is expected to be exact - if not, you might consider using either Radio (select only 1 option) or Checkbox (select all that apply) and offer ranges (a major benefit of using ranges is that they will make filling out the form a much quicker experience for the user): e.g.: