No...

don't give them names like txtGuestNum(1)..

give them all the name 'txtGuestNum'

They will be enumerated in the form collection and you WILL be able to access them as Request.Form("txtGuestNum")(1), Request.Form("txtGuestNum")(2), etc..

Code:
'Assuming Server side script here after the submit button has been clicked
Dim intLoop
Dim intCount

intCount = 0
For intLoop = 1 to Request.Form("txtGuestNum").Count
    intCount = intCount + Request.Form("txtGuestNum")(intLoop)
Next

Response.Write "Total Number=" & intCount & "<BR>"
The syntax is a little different on the client side but the concept is pretty much the same (no Request object available on the client side but you should still be able to loop through them)