The length of time it will take you to implement this is going to depend primarily on your experience and familiarity working with forms, Cloudpages and Ampscript, but it should not be a very heavy lift to get this going.
Basically you'd want to capture the Lead ID at the email-level and then pass it as a parameter on your link to the CloudPage.
%%[
SET @leadID = [Lead:Id]
]%%
<a href="%%=RedirectTo(CloudPagesURL(123,'leadID', @leadID))=%%">Link To CloudPage</a>
Then you map that ID as a hidden field on your form, along with the actual input you are getting from your Lead, and then pass all of this data to a separate CloudPage.
%%[
SET @leadID = RequestParameter('leadID')
]%%
<form method="post" action="<the url to your form processing page>">
<p>Some Field On The Lead Object:</p>
<input type="text" name="someField" id="someField" value="" placeholder="Enter Data" required />
<input type="hidden" name="leadID" value="%%=v(@leadID)=%%" />
</form>
This separate CloudPage, which could show a confirmation message to the user, would retrieve the parameters from the form (including the hidden input field for Lead ID) and then use the UpdateSingleSalesforceObject Ampscript function in order to update the Lead's record inside of SF.
%%[
SET @leadID = RequestParameter('leadID')
SET @someVal = RequestParameter('someField')
SET @result = UpdateSingleSalesforceObject('Lead',@leadID,'someField',@someVal)
]%%