I am new to Salesforce callouts and batch concepts but here is the requirement that I am working on:

Requirement is to get data from a third party API and create lead objects in our salesforce and for this I need to be able to make more than 100 future calls.

For now, I created a simple class and invoke this class from Anonymous Apex window in developer console.

This class makes callouts:

    public with sharing class CallOutExample {

	public void submitHttpRequest(){
		HttpRequest req = new HttpRequest();
		
		req.setMethod('GET');
		
		req.setEndPoint('http://www.example.com/endpoint');

		Http httpObj = new Http();
		HttpResponse res;
		String jsonString;
		
		List<Lead> leadObjList = new List<Lead>();

		for(Integer j =0; j <105; j++){
			
			res = httpObj.send(req);
			jsonString = res.getBody();
			
			Map<String,Object> jsonMapObj = (Map<String, Object>)JSON.deserializeUntyped(jsonString);
			
			List<Object> leadJsonObjList = (List<Object>)jsonMapObj.get('leadJson');
			
			for(Integer i=0; i<leadJsonObjList.size(); i++){
				// Here I take values for the last name, first name, phone number and everything from each lead Json object
				// and create lead objects and to the list
				Lead leadObj = new Lead(); //Assuming I am setting all the values
				leadObjList.add(leadObj);
			}	
			
		}

		Database.insert(leadObjList);
		
	}

    }


And then I am invoking this method with the below code from anonymous apex:

    CallOutExample obj = new CallOutExample();
    
    obj.submitHttpRequest();


Can somebody point me in right direction on how to achieve this:

If I write a batch class, will I be able to make more than 100 callouts? If so how do I implement the start method of the Batchable interface?