I would add a RANK or DENSE_RANK to your query based on the customer ID and create a table to hold the results. You can then use that ranking column as the start/end for each file with a simple query passing in the start and end rank.
drop table if exists dbo.tmpCustomerOrders;
[Customer Name] = c.customername
,[Customer ID] = c.id
,[Item Purchased] = o.itemname
,[Item Number] = o.itemNum
,[Item Description] = o.itemDesc
,CustomerRank = dense_rank() over(Order By c.id)
from dbo.mystore.customermstr c
join dbo.mystore.items o
on c.id = o.customerid
where c.status = 'true';
Declare @startRank int = 1
, @endRank int = 100000;
where CustomerRank >= @startRank
and CustomerRank < @endRank;
Using whichever tool you want to export the results, build a loop passing in the start and end rank for each loop. Get the max value of the customer rank to identify when you have reached the end.
Calculate the increment to be used for each loop - which can be based on the average number of items purchased or the total number of customers. For example, if the average number of items purchased is 2 - then increment by 50,000 for each loop or if the total number of customers is 120,000 and you want 12 files - increment by 10,000 for each loop.
If this needs to be a repeatable process - I would use SSIS. For an adhoc process - I would use version 7 (or higher) Powershell script with Export-Csv.